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ş:
Sınıf ve örnek yöntemleri arasındaki f...
Python soyut sınıf ve arayüz arasındak...
Sınıf değişkenleri ve sınıf örnek deği...
@Staticmethod ve @Python classmethod a...
Statik sınıf ve singleton deseni arası...