Pythonでは、すべてが「参照」です。単純なプログラムでは、私はクラスを持っている:Pythonのオブジェクトの静的リスト
class Watch(object):
def __init__(self, **kwargs):
self.variables = kwargs
def set_variable(self, k, v):
self.variables[k]=v
def get_variable(self, k):
return self.variables.get(k, None)
def print_info(self):
for k in self.variables:
print k + ": " + str(self.variables[k])
私が行う場合:
list = []
tmp = Watch()
tmp.set_variable('name','frank')
list.append(tmp)
tmp.set_variable('name','doug')
その後、
list[0].get_variable('name')
は、私は、一時的な変数を格納するにはどうすればよい "ダグ"
です追加した後に配列を維持しながらリストまたは配列ですか?
編集:How to clone or copy a list?と似ていますが、私はPythonのオブジェクトストレージのプロパティについてさらに詳しく知りたいと思います。オブジェクトは単に内容を渡すのではなく、ポインタとして扱われるようです。誰かがそれに話すことができますか?例えば、Cのような言語で++私は
list[0]=tmp
を言うことができるし、私は、TMPを変更することができ、リスト[0]のままでしょう。
あなたは何を期待したのですか?あなたはtmp 'name'を' doug'に更新しました。それは返されたものです – sisanared
try:list.append(copy.copy(tmp)) –
組み込みオブジェクトを上書きする変数を作成しないでください...私はちょっと内側に死ぬでしょう – Aaron