Python3においてクラス外の関数内で渡されたインスタンスのメンバ変数を変更した場合に、そのメンバ変数の変更は関数の外でも適用されるかどうか?
以下のような処理をPython3で実行した場合に、modelのハイパーパラメータ(メンバ変数)の値の変更は関数learnの外でも適用されてしまうのでしょうか?
また、メンバ変数の変更が行われるにせよ行われないにせよそのような動作をするのは何故でしょうか?
どなたか分かる方がいらっしゃればご教授頂けると助かります。
(Jupyter Notebook上でのコード実行を想定しています。)
class Model:
def train(self,..):
#ハイパーパラメータ(メンバ変数)の値を変える処理
def learn(model):
model.train()
model = Model()
learn(model)