मुझे पता है कि वे क्या करते हैं और मैंने दोनों के कई उदाहरण देखे हैं, लेकिन मुझे एक ऐसा उदाहरण नहीं मिला है जहां मुझे के साथ बदलने के बजाय classmethod
का उपयोग करना होगा।staticmethod के बजाय classmethod का उपयोग क्यों करें?
classmethod
का सबसे आम उदाहरण मैंने देखा है एक नया उदाहरण वर्ग के ही बनाने के लिए है, इस तरह (बहुत सरल उदाहरण है, वहाँ विधि एटीएम का कोई फायदा नहीं है, लेकिन आप विचार मिलता है।):
class Foo:
@classmethod
def create_new(cls):
return cls()
यह जब foo = Foo.create_new()
बुला Foo
का एक नया उदाहरण लौट आते हैं। अब कारण है कि मैं सिर्फ इस के बजाय का उपयोग नहीं कर सकते हैं:
class Foo:
@staticmethod
def create_new():
return Foo()
यह ठीक उसी, क्यों मैं कभी भी एक classmethod
एक staticmethod
से अधिक का उपयोग करना चाहिए है?
@ केविन ब्रायनडन उस पृष्ठ पर ओपीएस प्रश्न के लिए कोई * उत्तर * नहीं है लेकिन यह वहां टिप्पणियों में हो सकता है। मुझे नहीं पता कि यह – jamylak
को बंद करने के लिए पर्याप्त आधार है या नहीं, यह प्रश्न लिंक किए गए प्रश्न का डुप्लिकेट नहीं है। लिंक किए गए प्रश्न के उत्तर इस बात का समाधान नहीं करते हैं कि आप स्थिर तरीकों से कक्षा विधियों का उपयोग क्यों करेंगे, या इसके विपरीत। – spacetyper