ホームページ >バックエンド開発 >Python チュートリアル >Python 関数に渡された元の変数名を取得できますか?

Python 関数に渡された元の変数名を取得できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-30 00:33:02563ブラウズ

Can You Retrieve the Original Variable Name Passed to a Python Function?

関数パラメータ内の元の変数名を取得する

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。