私はサードパーティ製の素敵な小さな python モジュールを使用していますが、頭をひねったビットに出くわし、主にデータの整合性に関心があります。
簡単な要約: 大まかに次のようなクラス メソッドがあります。
def as_dict(self):
##adjust some attributes that don't make sense outside this scope
##... ... ...
return self.__dict__
このメソッドの結果を手動で使用していますが、それを渡す場所がいくつかあり、それらの関数が返された辞書に対して実際に何をしているのかわかりません。
さて、これはそのままで安全ですか、それともいくつかの迷子の関数が私のインスタンス属性をいじり始める可能性がありますか? 私は当初、「自己」が何らかの形でデータセットを保護していると考え、データのコピーを渡していましたが、インスタンス メモリへの参照を渡しているのだろうか? (内部にネストされたミュータブルがあります)
代わりにやるべきですか:return copy.deepcopy(self.__dict__)