関数に渡された元の変数名の取得
Python では、関数に渡された変数の元の名前を取得するのは簡単なように思えるかもしれません。タスク。ただし、Python の変数スコープと動的型付けにより、これを実現するにはいくつかの課題が生じます。それでも、この制限を回避する方法はありますが、その複雑さと潜在的な落とし穴のため、実際の使用はお勧めできません。
検査モジュールを使用すると、呼び出し元のコード コンテキストを取得できます。関数を呼び出して、渡された変数の名前を抽出します。次の Python の例は、これを行う方法を示しています。
<code class="python">import inspect def foo(a, f, b): frame = inspect.currentframe() frame = inspect.getouterframes(frame)[1] string = inspect.getframeinfo(frame[0]).code_context[0].strip() args = string[string.find('(') + 1:-1].split(',') names = [] for i in args: if i.find('=') != -1: names.append(i.split('=')[1].strip()) else: names.append(i) print(names) def main(): e = 1 c = 2 foo(e, 1000, b=c) main()</code>
出力:
['e', '1000', 'c']
この手法は教育または実験の目的でのみ使用する必要があることに注意してください。このメソッドを運用コードに実装することはお勧めできません。コードが脆弱でデバッグが難しく、セキュリティ上の問題に対して脆弱になる可能性があるからです。
一般に、変数名を渡すことが望ましいです。関数への追加引数として明示的に使用するか、元の変数名を取得する必要のないタスクを処理する他のアプローチを使用します。
以上がPython 関数に渡された元の変数名を取得できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。