SORU
12 AĞUSTOS 2009, ÇARŞAMBA


Bir temel sınıf'un arama classmethod Python

Aşağıdaki kodu göz önünde bulundurun:

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 arayayım mı? Normalde eğer bu normal bir nesne yöntemi ise super veya sınıf adı bile doğrudan kullanırdım, ama görünüşe göre temel sınıf classmethod aramak için bir yol bulamıyorum. Yukarıdaki örnekte, Base.do(a) Baskı Base Sınıf yerine Derived sınıf.

CEVAP
12 AĞUSTOS 2009, ÇARŞAMBA


super(Derived, cls).do(a)

EDİTOh, bir dakika bekle... tam olarak ne istediğinin belli değil. Bu türetilmiş bir sınıf yöntemi temel sınıfın sürüm kodu, çağırmak.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MkElite

    MkElite

    13 NİSAN 2012
  • NewsyTech

    NewsyTech

    2 AĞUSTOS 2010
  • Sali Kaceli

    Sali Kaceli

    24 ŞUBAT 2009