পাইথনের ক্লাস পদ্ধতি হল একটি পদ্ধতি, যা ক্লাসের সাথে আবদ্ধ কিন্তু সেই শ্রেণীর বস্তু নয়। স্ট্যাটিক পদ্ধতিগুলিও একই তবে কিছু মৌলিক পার্থক্য রয়েছে। ক্লাস পদ্ধতির জন্য, আমাদের @classmethod ডেকোরেটর উল্লেখ করতে হবে এবং স্ট্যাটিক পদ্ধতির জন্য @staticmethod ডেকোরেটর ব্যবহার করা হয়।
ক্লাস পদ্ধতির জন্য সিনট্যাক্স।
class my_class:
@classmethod
deffunction_name(cls, arguments):
#Function Body
return value
স্ট্যাটিক পদ্ধতির জন্য সিনট্যাক্স।
class my_class:
@staticmethod
deffunction_name(arguments):
#Function Body
return value
ক্লাসমেথড এবং স্ট্যাটিক মেহটোডের মধ্যে পার্থক্য কী?
| ক্লাস পদ্ধতি | স্ট্যাটিক পদ্ধতি |
|---|---|
| ক্লাস পদ্ধতিটি প্রথম আর্গুমেন্ট হিসেবে cls (class) নেয়। | স্ট্যাটিক পদ্ধতি কোনো নির্দিষ্ট প্যারামিটার নেয় না। |
| ক্লাস পদ্ধতি ক্লাস স্টেট অ্যাক্সেস এবং পরিবর্তন করতে পারে। | স্ট্যাটিক পদ্ধতি ক্লাস স্টেট অ্যাক্সেস বা পরিবর্তন করতে পারে না। |
| ক্লাস পদ্ধতিটি ক্লাসটিকে সেই ক্লাসের অবস্থা সম্পর্কে জানতে প্যারামিটার হিসাবে নেয়। | স্ট্যাটিক পদ্ধতি ক্লাস স্টেট সম্পর্কে জানে না। কিছু প্যারামিটার নিয়ে কিছু ইউটিলিটি কাজ করতে এই পদ্ধতিগুলি ব্যবহার করা হয়। |
| @classmethod ডেকোরেটর এখানে ব্যবহার করা হয়েছে। | @staticmethod ডেকোরেটর এখানে ব্যবহার করা হয়েছে। |
স্ট্যাটিক পদ্ধতি কিছু ইউটিলিটি কাজ করতে ব্যবহৃত হয়, এবং ক্লাস পদ্ধতি ফ্যাক্টরি পদ্ধতির জন্য ব্যবহার করা হয়। ফ্যাক্টরি পদ্ধতি বিভিন্ন ব্যবহারের ক্ষেত্রে ক্লাস অবজেক্ট ফেরত দিতে পারে।
উদাহরণ কোড
from datetime import date as dt
class Employee:
def __init__(self, name, age):
self.name = name
self.age = age
@staticmethod
defisAdult(age):
if age > 18:
return True
else:
return False
@classmethod
defemp_from_year(emp_class, name, year):
return emp_class(name, dt.today().year - year)
def __str__(self):
return 'Employee Name: {} and Age: {}'.format(self.name, self.age)
e1 = Employee('Dhiman', 25)
print(e1)
e2 = Employee.emp_from_year('Subhas', 1987)
print(e2)
print(Employee.isAdult(25))
print(Employee.isAdult(16))
আউটপুট
Employee Name: Dhiman and Age: 25 Employee Name: Subhas and Age: 31 True False