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

  • Ionized Digital Air Studios

    Ionized Digi

    20 HAZİRAN 2009
  • Jordie Jordan

    Jordie Jorda

    27 Ocak 2008
  • Need for Speed

    Need for Spe

    8 ŞUBAT 2006