Bu kod ...Python3 değişken adlarında basit bir fark, kodun çalışma şeklini değiştirebilir mi?
class Person:
num_of_people = 0
def __init__(self, name):
self.name = name
Person.num_of_people += 1
def __del__(self):
Person.num_of_people -= 1
def __str__(self):
return 'Hello, my name is ' + self.name
cb = Person('Corey')
kb = Person('Katie')
v = Person('Val')
aşağıdaki hatayı ...
Exception AttributeError: "'NoneType' object has no attribute 'num_of_people'" in <bound method Person.__del__ of <__main__.Person object at 0x7f5593632590>> ignored
üretir Ama bu kod yok.
class Person:
num_of_people = 0
def __init__(self, name):
self.name = name
Person.num_of_people += 1
def __del__(self):
Person.num_of_people -= 1
def __str__(self):
return 'Hello, my name is ' + self.name
cb = Person('Corey')
kb = Person('Katie')
vb = Person('Val')
Gördüğüm tek fark, son değişken adı "vb" vs. "v" şeklindedir.
Python'a yaslanıyorum ve şimdi OOP şeyleri üzerinde çalışıyorum.
@StevenRumbalski: Kısaca, evet. Ama sadece tercüman çıkışında. –
İlk kod bu istisnayı üretmiyor. Tam izinizi göster. (Düzeltme: Python 3.3 veya daha yüksek bir sürümde bu istisnayı üretmiyor. 3.2'de.) – geoffspear
@Wooble Nah! Eksik olan şey buydu .. – aIKid