\

Pythonでは、変数名を文字列として扱う方法がいくつかあります。ここでは、locals()関数、globals()関数、eval()関数の3つの方法を紹介します。

locals()関数を使う方法

locals()関数は、現在のローカルスコープ内で定義されている変数を辞書として返します。この辞書のキーには変数名が、値には変数の値が格納されています。変数名を文字列として取得するためには、この辞書のキーを使用します。

def func():
    x = 100
    y = 200
    # locals()のコピーを作成
    locals_vars = locals().copy()

    for var_name, var_value in locals_vars.items():
        print(f'{var_name}\\t{var_value}')

z = 30
func()

globals()関数を使う方法

globals()関数は、現在のグローバルスコープ内で定義されている変数を辞書として返します。locals()関数と同様に、この辞書のキーには変数名が、値には変数の値が格納されています。

def func():
    x = 100
    y = 200

z = 30

# globals()のコピーを作成
global_vars = globals().copy()

for var_name, var_value in global_vars.items():
    print(f'{var_name}\\t{var_value}')

eval()関数を使う方法

Pythonではevalという関数があります。文字列を式として扱う関数です。引数に変数名を与えるとその変数の値を返します。以下のような使用方法で、変数名を文字列として扱えます。

def print_name_value(_str):
    print('{}: {}'.format(_str, eval(_str)))

hoge = 0
print_name_value('hoge')  # 出力 >> hoge: 0

これらの方法を使うことで、Pythonで変数名を文字列として取得することができます。プログラムのデバッグや動的な変数の操作など、さまざまな場面で活用することができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です