Pythonでは、関数の内部と外部で変数を共有する方法があります。この記事では、その方法について詳しく説明します。
グローバル変数を使用する
Pythonでは、global
キーワードを使用して、関数の内部から関数の外部で定義された変数にアクセスすることができます。以下に例を示します。
test = "変更していません"
def overwrite():
global test # globalとして宣言
test = "変更されています!" # ここで上書き
print("関数の中では" + test)
overwrite() # ここで関数を呼び出し
print("関数の外では" + test) # 関数の呼び出しを行ったときに、関数内の変数testを変更する
このコードを実行すると、関数の内部と外部の両方で変数test
が”変更されています!”に変更されます。
ただし、グローバル変数は使用に注意が必要です。グローバル変数はプログラム全体からアクセス可能なため、予期しない場所で値が変更される可能性があります。
オブジェクトを介して変数にアクセスする
別の方法として、オブジェクトを介して関数の内部と外部で変数を共有することも可能です。以下に例を示します。
class Message:
test = "変更していません"
def overwrite(mes):
mes.test = "変更されています!" # ここで上書き
print("関数の中では" + mes.test)
m = Message() # クラスを具現化(インスタンス化)してオブジェクトに
overwrite(m) # ここで関数を呼び出し
print("関数の外では" + m.test) # 関数の呼び出しを行ったときに、関数内の変数testを変更する
このコードを実行すると、関数の内部と外部の両方でオブジェクトm
のメンバ変数test
が”変更されています!”に変更されます。
以上、Pythonで関数の内部と外部で変数を共有する方法について説明しました。これらの方法を理解し、適切に使用することで、より効率的なコードを書くことができます。