この質問は非常に具体的な質問ではありませんが、私はいくつかの例を挙げることができます。変数が新しいオブジェクトを指しているときや、同じオブジェクトを指す2つの変数があるときは決して知りませんので、私はPythonを非常に恐れています。同じオブジェクトに変数を代入するのとは逆に、新しいオブジェクトがPythonでいつ作成されるかを知る方法
は、例えば、私はこのように割り当てることを怖がっています:私はself.valueを変更した場合、数は変更したくない。この場合
def function(self):
number = self.value
return number
。私はリストを変更した場合、リスト2にも望ましくないとする変更されます。この場合、
list = [1,2,3]
list2 = list
:
はまた同じようにリストをコピーします。なぜ私はそれを新しい変数にしたくないのですか?とにかく
誰もがこれらのケースで新しい変数を作成するための安全な方法を知っているか、多分、新しいオブジェクトが作成されたときに2つの変数が同じオブジェクトを指すときの完全な説明を持っている場合、私は疑問に思います。私は平和の中でコードを作成したいと思います。私のコードが大きいので、いつも心配する必要はなく、どの変数が変更されたのか、どの計算後に変更されていないのか確認することはできません。質問は、質問へのリンクので、可変性と不変性に関連している
: Immutable vs Mutable types、 は良いかもしれませんが、これは、いくつかのために役立つかもしれない質問をする別の方法です。また、これは突然変異を避けることに重点を置いています。
シンプルルール:割り当て**決して**新しいオブジェクトを作成します。割り当ての後、常に左の名前は単に右のオブジェクトを参照します。 –
私は常に新しい変数Aに値を代入しなければなりません。次に変数Bの値をAに代入することができます。これは常にオブジェクトのコピーを作成しますか? –
[変更不可能な種類と変更可能な種類](https://stackoverflow.com/questions/8056130/immutable-vs-mutable-types)の可能な複製 – jwodder