মডিউল এবং ইমপোর্ট (Modules & Imports)
মডিউল কী? (What Are Modules?)
একটি মডিউল মূলত একটি পাইথন ফাইল, যেটিতে এমন কোড থাকে যা আপনি বারবার ব্যবহার করতে পারেন। এটিকে একটি টুলবক্সের (toolbox) মতো চিন্তা করুন। প্রতিবার শুরু থেকে হাতুড়ি বানানোর বদলে, আপনি শুধু টুলবক্স থেকে একটি হাতুড়ি নিয়ে নেন। পাইথনের নিজস্ব বিশাল একটি টুলবক্স বা বিল্ট-ইন মডিউল (যাকে স্ট্যান্ডার্ড লাইব্রেরি বলে) আছে, আর আপনি চাইলে ইন্টারনেট থেকে আরও অনেক মডিউল ইনস্টল করতে পারেন।
মডিউল সাধারণত তিন ধরণের হয়:
- বিল্ট-ইন মডিউল (Built-in modules) — যেগুলো পাইথনের সাথেই আসে:
math,random,os,json, ইত্যাদি। - থার্ড-পার্টি মডিউল (Third-party modules) — যেগুলো
pipদিয়ে ইনস্টল করতে হয়:requests,flask,numpy, ইত্যাদি। - আপনার নিজের মডিউল (Your own modules) — আপনার লেখা যেকোনো
.pyফাইল অন্য ফাইলে ইমপোর্ট করা যেতে পারে।
ইমপোর্ট করার ধরনসমূহ (Import Styles)
দরকারি স্ট্যান্ডার্ড লাইব্রেরি মডিউলগুলো (Useful Standard Library Modules)
পাইথনের স্ট্যান্ডার্ড লাইব্রেরি এতটাই সমৃদ্ধ যে একে প্রায়শই "batteries included" বা "ব্যাটারি সংযুক্ত" বলা হয়। নিচে এমন কিছু মডিউল দেওয়া হলো যা আপনার প্রতিনিয়ত কাজে লাগবে:
math— গাণিতিক কাজ:sqrt,ceil,floor,log, এবংpiএর মতো ধ্রুবকrandom— এলোমেলো সংখ্যা বা র্যান্ডম নাম্বার:randint,choice,shuffle,sampleos— অপারেটিং সিস্টেমের কাজ: ফাইল পাথ, এনভায়রনমেন্ট ভ্যারিয়েবল, ডিরেক্টরিjson— JSON ডেটা পড়া এবং লেখাdatetime— তারিখ এবং সময়collections— দারুণ কিছু কন্টেইনার:Counter,defaultdict,dequepathlib— আধুনিক পদ্ধতিতে ফাইল পাথ সামলানো
স্ট্যান্ডার্ড লাইব্রেরির বিশেষ অংশগুলো (Standard Library Highlights)
__name__ গার্ড এবং pip (The __name__ Guard & pip)
যখন আপনি কোনো পাইথন ফাইল সরাসরি রান করেন, তখন পাইথন __name__ নামক একটি স্পেশাল ভ্যারিয়েবলকে "__main__" হিসেবে সেট করে। আর যখন ফাইলটিকে অন্য কোথাও মডিউল হিসেবে ইমপোর্ট করা হয়, তখন __name__ এর স্থানে মডিউলটির নাম সেট হয়ে যায়। এর সাহায্যে আপনি এমন কোড লিখতে পারেন যা কেবল তখনই রান করবে যখন ফাইলটি সরাসরি চালানো হয় — ইমপোর্ট করার সময় নয়।
থার্ড-পার্টি প্যাকেজ ইনস্টল করতে pip ব্যবহার করুন — যা পাইথনের প্যাকেজ ইনস্টলার:
pip install requests— কোনো প্যাকেজ ইনস্টল করতেpip install -r requirements.txt— একটি ফাইল থেকে ইনস্টল করতেpip list— কী কী ইনস্টল করা আছে তা দেখতেpip uninstall requests— কোনো প্যাকেজ মুছে ফেলতে বা আনইনস্টল করতে
__name__ গার্ড (The __name__ Guard)
from module import specific_thing ব্যবহার করুন। from math import * দিয়ে সবকিছু ইমপোর্ট করা অনেকটা মেঝেতে পুরো টুলবক্স ঢেলে দেওয়ার মতো — আপনি বুঝতে পারবেন না কোনটা কোথা থেকে এসেছে, এবং নামের মধ্যে সংঘর্ষ (name clash) হতে পারে।