অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) পরিচিতি?
OOP বলতে অবজেক্ট-ওরিয়েন্টেড প্যারাডাইগমকে বোঝায় যা প্রোগ্রামিং মেথডোলজির হৃদয় বলা হয়। এতে পলিমরফিজম, এনক্যাপসুলেশন, ডেটা হাইডিং, ডেটা অ্যাবস্ট্রাকশন, ইনহেরিটেন্স এবং মডুলারিটি সহ বিভিন্ন কনসেপ্ট থাকে।
OOP ডেটাকে প্রাইম কনসিডারেশন দিয়ে এর সাথে asoshiate ফাংশনগুলোর মাধ্যমে একটি ইন্টারফেস প্রদান করে। একটি অবজেক্ট হলো একটি স্ব-পর্যাপ্ত এন্টিটি অর্থাৎ এর সাথে সকল ভেরিয়েবল এবং asoshiate ফাংশন থাকে। অবজেক্টের ক্যারেক্টারিস্টিক্স (ভেরিয়েবল) এবং ফিচারস (মেথড), যাকে অ্যাট্রিবিউট বলা হয়।
মডুলারিটি কী?
মডুলারিটি বলতে কোডকে মডিউলে পার্টিশন করার ক্রিয়া, সেগুলো প্রথমে বিল্ড করা, তারপর লিংকিং এবং অবশেষে সেগুলো কম্বাইন করে একটি সম্পূর্ণ প্রজেক্ট তৈরি করা। মডুলারিটি রি-ইউজেবিলিটি নিশ্চিত করে এবং ডুপ্লিকেশন মিনিমাইজ করতে চায়।
পাইথনে একটি মডিউল আর কিছু নয় বরং পাইথন ডেফিনিশন ধারণকারী একটি ফাইল যারপর মেথড এবং স্টেটমেন্ট থাকে। মডিউল নাম ফাইল নাম থেকে ".py" সফিক্স মুছে জেনারেট হয়। উদাহরণস্বরূপ, যদি ফাইল নাম prime.py হয়, তবে মডিউল নাম prime। চলুন একটি মডিউল তৈরি করি। নিচের কোড prime.py ফাইলে সেভ করুন:
উদাহরণ
def isPrimenot(n):
# কর্নার কেস
if (n <= 1):
print("False")
if (n <= 3):
print("True")
if (n % 2 == 0 or n % 3 == 0):
print("False")
i = 5
while(i * i <= n):
if (n % i == 0 or n % (i + 2) == 0):
print("False")
i = i + 6
print("True")
কমান্ড লাইন রান করলে আমরা পর্যবেক্ষণ করি:
কমান্ড লাইন
>>> import prime >>> prime.isPrimenot(3) True >>> prime.isPrimenot(8) False
আমরা মডিউলের একটি লোকাল নামও অ্যাসাইন করতে পারি এবং নিচের মত ফাংশন বাস্তবায়ন করতে পারি।
কমান্ড লাইন
>>> import prime >>> p = prime.isPrimenot >>> p(8) False
আমরা একসাথে একাধিক মডিউল ইম্পোর্ট করতে পারি এবং কমান্ড লাইনে তাদের বাস্তবায়ন একসাথে পর্যবেক্ষণ করতে পারি।
কমান্ড লাইন
>>> import prime >>> import math >>> p = prime.isPrimenot >>> p(math.log(2, math.pow(2, 8))) False
এভাবে, কোডটি একাধিক জায়গায় ব্যবহার করা যায় সেটি বারবার কোডে লিখতে হয় না। সুতরাং মডুলারিটি কোড রিযুজেবিলিটি এবং মিনিমাল ডিপেন্ডেন্সি সাপোর্ট করে।
টিপ: প্রতিটি মডিউল একটি সিঙ্গেল ইন্টারপ্রেটার সেশনে একবারে ইম্পোর্ট করা যায়। যদি আমরা মডিউলের কন্টেন্ট পরিবর্তন করি বা রিলোড করতে চাই, তবে ইন্টারপ্রেটার রিস্টার্ট করতে হবে।
এই রিলোডিং ম্যানুয়ালিও করা যায় নিচের স্টেটমেন্ট চালিয়ে:
>>> reload(modulename)
উপসংহার
এই নিবন্ধে আমরা পাইথন ৩.x-এ কোড রিযুজেবিলিটি এবং মডুলারিটি কনসেপ্ট শিখেছি।