ধরুন আমার কাছে ক্লাসযুক্ত একটি ফাইল foo.py
রয়েছে Foo
:
class Foo(object):
def __init__(self, data):
...
এখন আমি এমন একটি ফাংশন যুক্ত করতে চাই যা Foo
কাঁচা উত্স ডেটা থেকে নির্দিষ্ট উপায়ে একটি বস্তু তৈরি করে। আমি কি এটিকে ফু-তে স্থিতিশীল পদ্ধতি হিসাবে বা অন্য কোনও পৃথক ফাংশন হিসাবে রেখে দেব?
class Foo(object):
def __init__(self, data):
...
# option 1:
@staticmethod
def fromSourceData(sourceData):
return Foo(processData(sourceData))
# option 2:
def makeFoo(sourceData):
return Foo(processData(sourceData))
ব্যবহারকারীদের পক্ষে সুবিধাজনক হওয়া আরও বেশি গুরুত্বপূর্ণ কিনা তা আমি জানি না:
foo1 = foo.makeFoo(sourceData)
বা পদ্ধতি এবং শ্রেণীর মধ্যে স্পষ্ট মিলন বজায় রাখা আরও গুরুত্বপূর্ণ কিনা:
foo1 = foo.Foo.fromSourceData(sourceData)
@classmethod
, দেখুন ক্লাসমেডথোডের অর্থ এবং নবজাতকের জন্য @ স্ট্যাটিকমেডোথ?