SORU
16 EKİM 2008, PERŞEMBE


Python: sınıf ve örnek öznitelikleri arasındaki Fark

Orada arasında anlamlı bir ayrım vardır:

class A(object):
    foo = 5   # some default value

vs

class B(object):
    def __init__(self, foo=5):
        self.foo = foo

Eğer örneklerini çok oluşturuyorsanız, performansında herhangi bir fark ya da iki stilleri için alan ihtiyacı var mı? Bu kodu okurken, iki stilleri anlamını önemli ölçüde farklı olduğunu düşünüyor musunuz?

CEVAP
16 EKİM 2008, PERŞEMBE


Performans değerlendirmeleri ötesinde, bir önemli varsemantikfark. Sınıf özniteliği bu durumda, sadece bir nesne olarak adlandırılır. Örnek-öznitelik---küme örnekleme, nesneleri anılan birden fazla olabilir. Örneğin

>>> class A: foo = []
>>> a, b = A(), A()
>>> a.foo.append(5)
>>> b.foo
[5]
>>> class A:
...  def __init__(self): self.foo = []
>>> a, b = A(), A()
>>> a.foo.append(5)
>>> b.foo    
[]

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kyler Briskey

    Kyler Briske

    20 ŞUBAT 2011
  • уσ ρℓz sυв ιℓℓ sυв вαcқ

    уσ ρℓz

    14 EKİM 2010
  • pissengehen

    pissengehen

    26 EYLÜL 2006