पर विचार करें निम्नलिखित कोड में एक आधार वर्ग के classmethod कॉलिंग:अजगर
class Base(object):
@classmethod
def do(cls, a):
print cls, a
class Derived(Base):
@classmethod
def do(cls, a):
print 'In derived!'
# Base.do(cls, a) -- can't pass `cls`
Base.do(a)
if __name__ == '__main__':
d = Derived()
d.do('hello')
> $ python play.py
> In derived!
> <class '__main__.Base'> msg
Derived.do
से, मैं Base.do
कैसे कहते हैं?
मैं आमतौर पर super
या बेस क्लास नाम का उपयोग सीधे सामान्य ऑब्जेक्ट विधि के रूप में करता हूं, लेकिन स्पष्ट रूप से मुझे बेस क्लास में क्लासमेड को कॉल करने का कोई तरीका नहीं मिल रहा है।
उपरोक्त उदाहरण में Base.do(a)
कक्षा के बजाय Base
कक्षा प्रिंट करता है।
संबंधित: [कैसे अजगर में बच्चे कक्षा से एक माता पिता के वर्ग के विधि कॉल करने के?] (Http://stackoverflow.com/q/805066/95735) –