Perhatikan kode berikut:
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
Dari Derived.do
, bagaimana cara menelepon Base.do
?
Saya biasanya akan menggunakan super
atau bahkan nama kelas dasar secara langsung jika ini adalah metode objek normal, tetapi tampaknya saya tidak dapat menemukan cara untuk memanggil metode kelas di kelas dasar.
Dalam contoh di atas, Base.do(a)
mencetak Base
kelas, bukan Derived
kelas.