پرسش
راهحلهای تمیز و پایتونیک برای پیادهسازی سازندههای متعدد چیست؟
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