निम्नलिखित कोड पर विचार करें:
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
Derived