watakabi
@watakabi

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

pythonで変数の値を関数の名前にしたいです。

Discussion

解決したいこと

python3で、入力に応じて変数を作るプログラムを作っているのですが、変数の値を関数の名前にしたいです。
調べても自分に理解できる情報が見つからなかったのでここに質問しました。

0

よくわからないのですが、a="func"ということでしょうか?
何か例を出してもらったほうが回答しやすいのではないかと思います

1Like

指定された名前で辞書に格納するとかではだめなんでしょうか?

0Like

locals() が返す辞書に、関数名をキーとして関数オブジェクトをセットすれば関数を定義できます。ただし文脈によっては動かないことがあります。

name = "my_func"

locals()[name] = lambda: print("hello")

my_func() # => hello

exec() を使って動的に関数を定義することもできます。

name = "my_func"

exec(f"""
def {name}():
    print("hello")
""")

my_func() # => hello

いずれにしても、入力に応じて変数や関数の名前を決めるようなコードは普通の Python プログラミングでは書かないほうがいいです。(動的なコード生成が必要なフレームワークを作るときや、 Python で何ができるか実験するときに書く程度です。)なんらかの名前と値を対応させたいときは一般的には辞書オブジェクトを使います。

0Like

Your answer might help someone💌