私はPythonに比較的慣れていません。私の疑問を例に挙げましょう:
「person」というクラス オブジェクトを作成します。
class person:
name = ""
age = ""
phones = []
def add_phone(self, number):
self.phones.append(number)
後で使用するデータを準備しましょう。
names = ["jhon", "tony", "mike", "peter"]
ages = [34, 36, 23, 75]
phones = [7676, 7677, 7678, 7679]
for ループに入りましょう。
for i in range(0,4):
new_person = person()
私の理解では、前の行が実行されるたびに、新しいオブジェクト person が作成されて new_person と呼ばれ、前の反復からの変数 new_person 内のすべてのオブジェクトが破棄されます。ただし、そうではありません。
new_person.name = names[i]
new_person.age = ages[i]
new_person.add_phone(phones[i])
print "i= " + str(i)
print "name= "+ new_person.name
print "age= "+ str(new_person.age)
print "phones:"
print new_person.phones
new_person.phones
以前の繰り返しで追加した電話が含まれています。誰かが私が欠けているものを見ていますか? これは、オブジェクト クラス「person」がシングルトンのように振る舞うということですか?