এই বক্তৃতাটি পাইথনের মডিউল এবং প্যাকেজগুলির চারপাশে বিস্তৃত হবে।
এগুলি ফাইল আকারে আপনার কোড সংগঠিত করার একটি উপায় এবং আপনি যদি পাইথনের সাথে ওয়েব অ্যাপ্লিকেশন তৈরি করতে চান তবে এটি সত্যিই গুরুত্বপূর্ণ
মডিউল
পাইথনের একটি মডিউল মূলত কিছু পাইথন কোড সহ একটি ফাইল যা আমরা আমাদের কোডকে ফাইলগুলিতে সংগঠিত করতে ব্যবহার করি। সুপারমার্কেটের বিভাগগুলির মতো এটিকে ভাবুন। আপনি যখন সুপারমার্কেটে যান তখন ফল, সবজি, পরিষ্কারের পণ্য ইত্যাদির জন্য বিভিন্ন বিভাগ থাকে। আপনি সমস্ত পণ্যের সাথে একটি বিভাগ দেখতে পান না।
এটা প্রোগ্রামিং একই ধারণা. main.py-এ সমস্ত ফাংশন এবং ক্লাস সহ আমাদের সমস্ত কোড লেখার পরিবর্তে, আমরা আমাদের কোডকে একাধিক ফাইলে বিভক্ত করি। প্রতিটি ফাইল একটি মডিউল হিসাবে উল্লেখ করা হয়. এটির সাথে, আমাদের কোডটি কেবল আরও ভালভাবে সংগঠিত এবং কাঠামোগত নয়, তবে আমাদের কোড পুনরায় ব্যবহার করার ক্ষমতাও রয়েছে। একটি উদাহরণের মাধ্যমে দেখা যাক।
ওজনকে পাউন্ড থেকে কিলোগ্রামে রূপান্তরের জন্য দুটি ফাংশন সংজ্ঞায়িত করা যাক এবং এর বিপরীতে।
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
এখন, আমরা এই দুটি ফাংশন নিতে পারি এবং সেগুলিকে "কনভার্টারস" নামক একটি পৃথক মডিউলে রাখতে পারি এবং তারপরে এই রূপান্তরকারী ফাংশনগুলির প্রয়োজন হয় এমন যেকোনো প্রোগ্রামে এটি আমদানি করা যেতে পারে। আমাকে দেখান কিভাবে এটি করতে হয়.
আমাদের প্রজেক্ট প্যানেল খুলুন এবং প্রজেক্টে ডান-ক্লিক করুন এবং একটি নতুন ফাইল যোগ করুন। আমরা এই ফাইলটিকে "Converters.py" বলতে যাচ্ছি।
এখন ডিফল্ট ফাইল থেকে কোডটি কপি করুন এবং "Converters.py" এ পেস্ট করুন।
এটির সাহায্যে, আমরা আমাদের প্রধান মডিউলটি পরিষ্কার করেছি এবং এটি বিভিন্ন ফাংশন দিয়ে ফোলা নয়। যেহেতু আমরা ক্লাসের সাথে আরও ফাংশন লিখি, আমরা সেগুলিকে তাদের সংশ্লিষ্ট মডিউলগুলিতে রাখি। একটি মডিউলে সমস্ত সম্পর্কিত ফাংশন এবং ক্লাস থাকা উচিত। এখন, আমরা আমাদের অ্যাপ মডিউলে রূপান্তরকারী মডিউল আমদানি করতে চাই। এটি করতে, লিখুন import converters
".py" এক্সটেনশন ছাড়াই উপরে।
আমরা পদ্ধতির অনুরূপ একটি ডট অপারেটর ব্যবহার করে একটি মডিউলের সদস্যদের অ্যাক্সেস করতে পারি।
70 কেজিকে পাউন্ডে রূপান্তর করা যাক:
মডিউল আমদানির জন্য আরেকটি সিনট্যাক্স রয়েছে। সম্পূর্ণ মডিউল আমদানি করার পরিবর্তে, আমরা সেই মডিউল থেকে নির্দিষ্ট ফাংশন আমদানি করতে পারি। আমরা টাইপ করতে পারি from Converters import
এবং উপলব্ধ ফাংশনগুলির তালিকা দেখাতে "কন্ট্রোল + স্পেস" টিপুন। এটি দিয়ে, আমরা সরাসরি এই ফাংশনটি কল করতে পারি।
ব্যায়াম
এখানে আপনার ব্যায়াম.
এটি বক্তৃতা থেকে একটি অনুশীলনের সাথে সম্পর্কিত যেখানে আমরা আলোচনা করেছি "loops জন্যযেখানে আমরা একটি তালিকা থেকে বৃহত্তম সংখ্যা খুঁজে বের করার জন্য একটি প্রোগ্রাম লিখেছিলাম
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
এই কোড বর্তমানে কোন সংস্থা নেই. আমাদের কোন ফাংশন বা মডিউল নেই এবং প্রোগ্রামটি একটি ফাইলে লেখা হয়। এটি ছোট প্রোগ্রামগুলির জন্য ঠিক আছে তবে আপনার প্রোগ্রামগুলি বাড়ার সাথে সাথে আপনাকে আপনার কোডকে ক্লাস এবং মডিউলগুলিতে সঠিকভাবে সংগঠিত করতে হবে। অতএব, এই অনুশীলনের অংশ হিসাবে, আমি চাই আপনি একটি ফাংশন লিখুন, এটি কল করুন find_max
. এই ফাংশনটি একটি তালিকা নিতে হবে এবং সেই তালিকার সবচেয়ে বড় সংখ্যাটি ফেরত দেবে। এর পরে এগিয়ে যান এবং এই ফাংশনটিকে একটি পৃথক মডিউলে রাখুন, এখান থেকে এটি বের করুন এবং এটিকে একটি মডিউলে রাখুন utils
. এই মডিউলটিতে একগুচ্ছ ইউটিলিটি ফাংশন থাকা উচিত। আমদানি করুন utils
বর্তমান মডিউল এবং কল মধ্যে মডিউল find_max
ফাংশন অবশেষে, ফলাফল পান এবং টার্মিনালে প্রিন্ট করুন।
এই ব্যায়ামটি একটু চ্যালেঞ্জিং কিন্তু সহজে সম্ভব।
সমাধান
একটি ফাংশন সংজ্ঞায়িত করে শুরু করুন find_max
এবং সংখ্যা নামক একটি প্যারামিটার যোগ করুন। এই ফাংশনের ভিতরে, একটি তালিকায় সবচেয়ে বড় সংখ্যা খুঁজে বের করার জন্য অ্যালগরিদম লিখুন।
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
এই কোডটি একটি মডিউল হিসাবে “utils.py” ফাইলে সংরক্ষণ করুন।
আমাদের মূল প্রোগ্রামে ফিরে যান, দুটি সিনট্যাক্সের যেকোন একটি দ্বারা মডিউলটি আমদানি করুন এবং কেবল যুক্তিটি চালান।
একটি জিনিস, আমি আপনার মনোযোগ আনতে হবে অবমূল্যায়ন max
. এর কারণ হল max
পাইথনে একটি অন্তর্নির্মিত ফাংশন এবং আমরা এটিকে পুনরায় সংজ্ঞায়িত করছি। তাই এই থেকে একটি সতর্কতা পাইথন কম্পাইলার যে আমরা আর এর অন্তর্নির্মিত ফাংশন হিসাবে max ব্যবহার করতে পারি না।
পাইথনে অন্তর্নির্মিত মডিউল
পাইথন একটি স্ট্যান্ডার্ড লাইব্রেরির সাথে আসে যাতে সাধারণ কাজের জন্য বেশ কয়েকটি মডিউল রয়েছে যেমন ইমেল পাঠানো, তারিখ এবং সময় নিয়ে কাজ করা, এলোমেলো মান এবং পাসওয়ার্ড তৈরি করা ইত্যাদি। পাইথনে ইতিমধ্যেই অনেকগুলি মডিউল তৈরি করা হয়েছে যার অর্থ ইতিমধ্যেই প্রচুর কার্যকারিতা রয়েছে যা আমরা পুনরায় ব্যবহার করতে পারি। আপনি এই মডিউল খুঁজে পেতে পারেন এখানে.
প্যাকেজ
প্যাকেজগুলি মূলত মডিউলগুলির উপরে আমাদের কোড সংগঠিত করার আরেকটি উপায়। একটি বাস্তব প্রকল্পে শত শত বা এমনকি হাজার হাজার মডিউল থাকতে পারে এবং সময়ের সাথে সাথে আমাদের ডিরেক্টরি অনেকগুলি ফাইলের সাথে ফুলে উঠবে। অতএব, একটি ভাল পদ্ধতি হল একটি প্যাকেজের ভিতরে সম্পর্কিত মডিউলগুলি সংগঠিত করা যা প্যাকেজটিকে একাধিক মডিউলের জন্য একটি ধারক করে তোলে।
প্রকল্পে একটি নতুন ডিরেক্টরি যোগ করা হয়েছে এবং সমস্ত সম্পর্কিত মডিউলগুলি সেই ডিরেক্টরিতে যুক্ত করা হয়েছে। একটি উদাহরণ হিসাবে, একটি মল চিন্তা করুন. একটি মলে পুরুষ, মহিলা এবং বাচ্চাদের পোশাকের জন্য বিভিন্ন বিভাগ রয়েছে যা প্যাকেজের মতো। জুতা, টি-শার্ট এবং জ্যাকেটের মতো বিভিন্ন ধরণের পণ্যের জন্য প্রতিটি বিভাগে আলাদা আলাদা এলাকা রয়েছে। এই মডিউল হিসাবে চিন্তা করুন.
চলুন দেখি, কিভাবে পাইথনে প্যাকেজ তৈরি ও ব্যবহার করা যায়।
প্রথমে, প্রকল্প প্যানেল থেকে একটি নতুন ডিরেক্টরি যোগ করুন। আসুন এটিকে "ই-কমার্স" বলি। এই প্যাকেজটিতে একটি ইকমার্স অ্যাপ্লিকেশন সম্পর্কিত সমস্ত মডিউল থাকবে।
এটি এখনও একটি খালি ডিরেক্টরি এবং এটিকে একটি প্যাকেজে রূপান্তর করতে, আমাদের এটিতে একটি বিশেষ ফাইল তৈরি করতে হবে। এই ডিরেক্টরিতে একটি নতুন পাইথন ফাইল যোগ করুন এবং সেই ফাইলটির নাম দিন “__init__”। এটি পাইথনের একটি বিশেষ কনভেনশন এবং যখন পাইথন ইন্টারপ্রেটার একটি ডিরেক্টরিতে এই নামের একটি ফাইল দেখে, তখন এটি এই ডিরেক্টরিটিকে একটি প্যাকেজ হিসাবে বিবেচনা করে।
আমাদের কাছে একটি প্যাকেজ তৈরি করার জন্য একটি বিকল্প এবং সংক্ষিপ্ত পদ্ধতিও রয়েছে। শুধু প্রজেক্ট প্যানেলে ডান-ক্লিক করুন এবং তালিকা থেকে একটি পাইথন প্যাকেজ তৈরি করুন। এটির নাম দিন “ইকমার্স” এবং এটাই। এটি স্বয়ংক্রিয়ভাবে "__init__" নামে একটি পাইথন ফাইল সহ একটি ডিরেক্টরি তৈরি করবে।
এখন, প্যাকেজে একটি মডিউল তৈরি করা যাক এবং এর নাম রাখি "শিপিং"। এই মডিউলে, শিপিং খরচ গণনা করার জন্য একটি সহজ ফাংশন তৈরি করা যাক।
def calc_shipping():
print("calc_shipping")
আমাদের প্রধান মডিউলে এই ফাংশনটি অ্যাক্সেস করতে, আমাদের ই-কমার্স প্যাকেজের মাধ্যমে এটি অ্যাক্সেস করতে হবে। এই মডিউলটি আমদানি করার জন্য আমাদের কাছে আবার দুটি পদ্ধতি রয়েছে।
প্রথম পদ্ধতিতে, আমরা পুরো মডিউলটি আমদানি করতে পারি এবং তারপর স্বাধীনভাবে একটি ফাংশনকে এভাবে কল করতে পারি:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
যাইহোক, এই পদ্ধতির সাথে, এই মডিউলে একটি ফাংশন কল করার জন্য এটির সাথে প্রিফিক্স করা প্রয়োজন eCommerce.shipping.
যে খুব শব্দ. সুতরাং, প্যাকেজগুলির সাথে কাজ করার সময় আমরা প্রায়শই দ্বিতীয় পদ্ধতি ব্যবহার করি এবং ব্যবহার করি from
বিবৃতি।
from eCommerce.shipping import calc_shipping
calc_shipping()
আপনার যদি একটি মডিউলে একাধিক ফাংশন থাকে তবে আপনি তাদের মধ্যে কমা ব্যবহার করে সেগুলিকে এক লাইনে আমদানি করতে পারেন। ধরা যাক আমাদের শিপিং মডিউলে ট্যাক্স গণনা করার জন্য আরেকটি ফাংশন আছে। এটি এই মত আমদানি করা হবে:
from eCommerce.shipping import calc_shipping, calc_tax
এছাড়াও আপনি পৃথক মডিউল আমদানি করতে পারেন এবং প্রোগ্রামের পরবর্তী পর্যায়ে কল করার জন্য ফাংশনগুলি ছেড়ে দিতে পারেন। আসুন মডিউল শিপিং আমদানি করি এবং তারপর ফাংশনটি কল করতে একটি ডট অপারেটর ব্যবহার করি calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
শেষ করি!
প্যাকেজ এবং মডিউলগুলি পাইথনে অত্যন্ত গুরুত্বপূর্ণ। বিশেষত, যখন আপনি জ্যাঙ্গোর মতো একটি কাঠামোর সাথে কাজ করতে চান যা বিল্ডিংয়ের জন্য ব্যবহৃত হয় ওয়েব অ্যাপ্লিকেশন পাইথনের সাথে। আমরা আরেকটি পাইথন কোর্সের সময় জ্যাঙ্গো দেখব।
এটাই ছিল এই সিরিজের শেষ প্রচলিত বক্তৃতা। পরবর্তী লেকচারটি আমাদের স্বাভাবিক বিন্যাস থেকে বিচ্যুত হবে এবং আমরা পাইথনের কিছু গুরুত্বপূর্ণ ব্যবহারের ক্ষেত্রে শিখব। এটি এই সিরিজের সমাপ্তি চিহ্নিত করবে এবং আমরা আমাদের পরবর্তী পাইথন সিরিজে চলে যাব। এর জন্য সাথেই থাকুন।
নির্দেশিকা সমন্ধে মতামত দিন