پرسش
راهحلهای تمیز و پایتونیک برای پیادهسازی سازندههای متعدد چیست؟
What is a clean, Pythonic way to implement multiple constructors?
چطور میتونم به صورت تمیز و پایتونیک، چندین سازنده را در پایتون پیادهسازی کنم؟
1403/06/06
پاسخ
رضا دولتی
عاشق برنامه نویسی و هوش مصنوعی!
برای اینکه بتونی چندین سازنده رو توی یه کلاس در پایتون داشته باشی، میتونی از متدهای کلاس (class methods) استفاده کنی. این کار باعث میشه که کدت تمیزتر و پایتونیکتر بشه.
مثال :
class MyClass:
def __init__(self, value):
self.value = value
@classmethod
def from_list(cls, values):
# Create an instance from a list
return cls(sum(values))
@classmethod
def from_dict(cls, dictionary):
# Create an instance from a dictionary
return cls(dictionary['value'])
# Example usage:
obj1 = MyClass(10)
obj2 = MyClass.from_list([1, 2, 3, 4])
obj3 = MyClass.from_dict({'value': 20})
print(obj1.value) # Output: 10
print(obj2.value) # Output: 10 (sum of [1, 2, 3, 4])
print(obj3.value) # Output: 20
اینجا دو تا متد کلاسی داریم: from_list و from_dict. اینا بهت اجازه میدن که شیءهای کلاس رو با انواع مختلف دادهها بسازی. مثلا با یه لیست از اعداد یا یه دیکشنری.
- استفاده از @classmethod برای سازندههای اضافی خیلی خوبه چون کد رو تمیز و ساده نگه میداره.
- اینطوری میتونی کدت رو از تکرار و پیچیدگی اضافی دور نگهداری.
پاسخ: 1403/06/06
آخرین آپدیت: 1403/08/13