- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:変数の名前を取得)
変数の名前を取得する方法とは?
このQ&Aのポイント
- Python 2.7.8において、変数の名前を取得する方法について説明します。
- foo関数を実行し、引数として渡された変数の名前を取得するためには、inspectモジュールのstack関数を使用します。
- inspect.stack関数を使用することで、呼び出し元のスタックのフレームレコードのリストが取得できます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
変数は難しいと思います。 得たファイル名と行番号から、ソースコードを読み出して解析するしかないように思います。 a=1 b=a func(a) では、「変数a」を渡すわけではなく、「整数オブジェクト1」が渡されます。 「整数オブジェクト1」は、変数aでもあり、変数bでもあります。
その他の回答 (1)
- kmee
- ベストアンサー率55% (1857/3366)
回答No.1
[inspect.stack呼び出し元のフレームレコード(現在のフレームレコード), 現在の関数の呼び出し元のフレームレコード, それの呼び出し元のフレームレコード, ... 一番上の呼び出し元のフレームレコード ] その関数の説明のちょっと上に http://docs.python.jp/2/library/inspect.html#inspect-stack > “フレームレコード”は長さ6のタプルで、以下の値を格納しています: > フレームオブジェクト、 > ファイル名、 > 実行中の行番号、 > 関数名、 > コンテキストのソース行のリスト、 > ソース行のリストにおける実行中の行のインデックス。 とあります。 ファイル名と行番号は解決でしょう。
質問者
お礼
返答ありがとうございます ファイル名を得ることが出来ました。 変数名(質問文中の例では"a")を得る方法はありますか。
お礼
返答ありがとうございます 分かりました 今後もおねがいします