टी एल; डॉ मैं कैसे पता लगाएँ कि क्या एक समारोह में एक ही प्रभाव के साथ @classmethod
या कुछ का उपयोग कर परिभाषित किया गया था लगता है?चेक एक समारोह @classmethod का उपयोग करता है, तो
मेरे समस्या
एक वर्ग डेकोरेटर को लागू करने के लिए मैं एक विधि, उदाहरण के लिए के रूप में के माध्यम से
@classmethod
def function(cls, ...):
मैंने पाया हासिल की अपनी पहली तर्क के रूप में वर्ग लेता है, तो जाँच करने के लिए चाहते हैं मॉड्यूल के माध्यम से @staticmethod
के लिए जांच करने का एक समाधान (isinstance(foo, types.UnboundMethodType)
False
है यदि foo
स्थिर है, तो here देखें), लेकिन कैसे के लिए @classmethod
प्रसंग
ऐसा करने के लिए पर कुछ भी नहीं मिला मुझे क्या करना कोशिश कर रहा हूँ
def class_decorator(cls):
for member in cls.__dict__:
if (isclassmethod(getattr(cls, member))):
# do something with the method
setattr(cls, member, modified_method)
return cls
और मैं करता हूँ की तर्ज पर कुछ है इस उदाहरण में isclassmethod
को लागू करने के बारे में नहीं पता कि
यह केवल पायथन 3 –
के लिए सच है क्या पाइथन 2 और पायथन 3 (व्यक्तिगत रूप से, मैं 2.7 का उपयोग करता हूं) के लिए कुछ भी काम कर रहा हूं। – hlt