タイトルの質問が明確でない場合は申し訳ありませんが、スペースが限られているため、明確にするために...
私のコードには、オブジェクトを格納するための空のリストを作成する empDB というクラスがあります。
リストに新しいオブジェクトを追加するには、empDB に appendEmp というメソッドを作成しました。appendEmp は、インスタンス化するクラスを指定する 1 つのパラメーターを取り、それをリストに追加します。パラメータが指定されていない場合、デフォルトでクラス Employee() になります。
ここに私の問題があります
メソッドappendEmpを呼び出すと、リストに新しいオブジェクトが作成されますが、リストに既にあるオブジェクトをインスタンス化しようとすると、そのエイリアスのみが作成されます。リスト内の各オブジェクトの属性を個別に編集できるように、毎回新しいオブジェクトを作成する必要があります。
ここに私のコードのスニペットがあります:
class empDB:
def __init__(self, lst= []): #creates empty list
self.lst = lst
def appendEmp(self, emp=Employee()):
self.lst=self.lst+[emp]
基本的にこれが今起こっていることです
>>> db=empDB()
>>> db.appendEmp()
>>> db.appendEmp()
>>> db[0] is db[1]
True
私はそれが偽である必要があります