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

  • Abbeydabby0277's channel

    Abbeydabby02

    9 ŞUBAT 2012
  • Orson Wang

    Orson Wang

    28 EKİM 2006
  • Triune Films

    Triune Films

    9 ŞUBAT 2006