পাইথনে oop দুটি ধরণের মেথড রয়েছে:
- ইনস্ট্যান্স মেথড এবং
- ক্লাস মেথড।
ইনস্ট্যান্স মেথড
ইনস্ট্যান্স মেথড হল সেই মেথডগুলি যা একটি অবজেক্টের সাথে সংযুক্ত থাকে। ইনস্ট্যান্স মেথডগুলি অবজেক্টের অবস্থা অ্যাক্সেস করতে এবং পরিবর্তন করতে পারে।
ইনস্ট্যান্স মেথডগুলিকে সাধারণত অবজেক্ট নামের পরে একটি ডট (.) চিহ্ন দিয়ে ডাকা হয়।
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"Hello, my name is {self.name} and I am {self.age} years old.")
person = Person("Alice", 25)
person.greet()
উপরের কোডে, greet() মেথডটি একটি ইনস্ট্যান্স মেথড। এটি Person ক্লাসের একটি অবজেক্টের সাথে সংযুক্ত, এবং এটি অবজেক্টের name এবং age ক্ষেত্রগুলি অ্যাক্সেস করতে পারে।
ক্লাস মেথড
ক্লাস মেথড হল সেই মেথডগুলি যা একটি ক্লাসের সাথে সংযুক্ত থাকে। ক্লাস মেথডগুলি ক্লাসের অবস্থা অ্যাক্সেস করতে এবং পরিবর্তন করতে পারে, তবে তারা নির্দিষ্ট কোনো অবজেক্টের অবস্থা অ্যাক্সেস বা পরিবর্তন করতে পারে না।
ক্লাস মেথডগুলিকে সাধারণত ক্লাস নামের পরে একটি ডট (.) চিহ্ন দিয়ে ডাকা হয়।
উদাহরণ:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
@classmethod
def get_age_range(cls):
return range(cls.min_age, cls.max_age)
@classmethod
def set_min_age(cls, min_age):
cls.min_age = min_age
@classmethod
def set_max_age(cls, max_age):
cls.max_age = max_age
person = Person("Alice", 25)
print(Person.get_age_range())
উপরের কোডে, get_age_range(), set_min_age() এবং set_max_age() মেথডগুলি ক্লাস মেথড। এগুলি Person ক্লাসের সাথে সংযুক্ত, কিন্তু তারা person অবজেক্টের অবস্থা অ্যাক্সেস বা পরিবর্তন করতে পারে না।
ইনস্ট্যান্স মেথড ও ক্লাস মেথডের মধ্যে পার্থক্য
ইনস্ট্যান্স মেথড ও ক্লাস মেথডের মধ্যে প্রধান পার্থক্যগুলি হল:
| বৈশিষ্ট্য | ইনস্ট্যান্স মেথড | ক্লাস মেথড |
|---|---|---|
| সংযুক্তি | একটি অবজেক্টের সাথে | একটি ক্লাসের সাথে |
| অবস্থা অ্যাক্সেস | করতে পারে | করতে পারে না (নির্দিষ্ট কোনো অবজেক্টের অবস্থা) |
| ব্যবহার | অবজেক্টের সাথে যুক্ত কাজগুলি সম্পাদন করতে | ক্লাসের সাথে যুক্ত কাজগুলি সম্পাদন করতে |