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

  • Branboy3

    Branboy3

    12 AĞUSTOS 2012
  • Video Copilot

    Video Copilo

    21 EYLÜL 2006
  • Watcher3223

    Watcher3223

    15 Kasım 2007