Python で関数が返された後に元の変数名を出力できますか?

Mary-Kate Olsen
リリース: 2024-10-26 15:37:02
オリジナル
660 人が閲覧しました

Can You Print the Original Variable Names in Python After a Function Return?

関数 Return 後の Python での変数名の出力

Python では、myEnum.SomeNameA や myEnum などの列挙型変数を使用するのが一般的です。 SomeNameB.これらの変数が関数から返される場合、値ではなく名前を出力すると便利です。

短い答え: 不可能

短い答えは、関数から返された後で元の変数名を出力することはできません。これは、Python 変数は名前が関連付けられたオブジェクトではないためです。

長い回答: ハッキーな回避策

同様のことを実現できる可能性のある回避策がいくつかあります。 , ただし、これらの方法は通常、運用コードでは推奨されません。このような回避策の 1 つは、traceback、inspect、およびその他のモジュールを使用してコール スタックに関する情報にアクセスすることです。これは、次のようなコードを使用して実現できます:

<code class="python">import inspect
import traceback

def get_variable_name(value):
    # Get the current stack frame
    frame = inspect.currentframe()
    # Get the function that called this function
    function = frame.f_back.f_code
    # Get the line number of the call
    line_number = frame.f_back.f_lineno
    # Get the source code for that line
    source_line = function.co_lines[line_number - 1]
    # Find the variable name
    var_name = source_line.split("=")[0].strip()
    return var_name</code>
ログイン後にコピー

ただし、このような回避策は複雑でエラーが発生しやすい可能性があり、すべての状況に適しているわけではないことに注意することが重要です。

回避策

変数名を出力する代わりに、特定の使用例に基づいて別のアプローチを使用することを検討できます。たとえば、値を対応する名前にマッピングする辞書を維持したり、ログ フレームワークを使用して変数名とその値を記録したりできます。

以上がPython で関数が返された後に元の変数名を出力できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート