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

class Model:
    def train(self,..):
    #ハイパーパラメータ(メンバ変数)の値を変える処理

def learn(model):
    model.train()

model = Model()
learn(model)