関数パラメータ内の元の変数名を取得する
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 サイトの他の関連記事を参照してください。