• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:変数の名前を取得)

変数の名前を取得する方法とは?

このQ&Aのポイント
  • Python 2.7.8において、変数の名前を取得する方法について説明します。
  • foo関数を実行し、引数として渡された変数の名前を取得するためには、inspectモジュールのstack関数を使用します。
  • inspect.stack関数を使用することで、呼び出し元のスタックのフレームレコードのリストが取得できます。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

変数は難しいと思います。 得たファイル名と行番号から、ソースコードを読み出して解析するしかないように思います。 a=1 b=a func(a) では、「変数a」を渡すわけではなく、「整数オブジェクト1」が渡されます。 「整数オブジェクト1」は、変数aでもあり、変数bでもあります。

remokon
質問者

お礼

返答ありがとうございます 分かりました 今後もおねがいします

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

[inspect.stack呼び出し元のフレームレコード(現在のフレームレコード), 現在の関数の呼び出し元のフレームレコード, それの呼び出し元のフレームレコード, ... 一番上の呼び出し元のフレームレコード ] その関数の説明のちょっと上に http://docs.python.jp/2/library/inspect.html#inspect-stack > “フレームレコード”は長さ6のタプルで、以下の値を格納しています: > フレームオブジェクト、 > ファイル名、 > 実行中の行番号、 > 関数名、 > コンテキストのソース行のリスト、 > ソース行のリストにおける実行中の行のインデックス。 とあります。 ファイル名と行番号は解決でしょう。

remokon
質問者

お礼

返答ありがとうございます ファイル名を得ることが出来ました。 変数名(質問文中の例では"a")を得る方法はありますか。

関連するQ&A

専門家に質問してみよう