- 1 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 16:23:39 ]
- Python オフィシャルサイト
www.python.org/ 日本Pythonユーザ会 www.python.jp/Zope/ FrontPage - Pythonのお勉強 python.rdy.jp/ 前スレ pc11.2ch.net/test/read.cgi/tech/1196426978/ ◆関連スレッド Microsoft IronPython 1.0 pc11.2ch.net/test/read.cgi/tech/1157686822/ Python の宿題ここで答えます Part 1 pc11.2ch.net/test/read.cgi/tech/1153585095/ 2ch検索: [python] find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python ◆関連サイト Python ドキュメント www.python.jp/doc/release/ 参考サイト - Pythonのお勉強 python.rdy.jp/wiki.cgi?page=%BB%B2%B9%CD%A5%B5%A5%A4%A5%C8 以上
- 110 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 03:08:43 ]
- >>108
無理 できるのは、locals() でローカル変数の一覧を、globals() でグローバル変数の一覧をとってくるぐらい。 そんなことを必要とするのはたぶん、「ほんとうにやりたいこと」に対する解決方法が間違ってると思うから、まず「ほんとうにやりたいこと」を書いてみるといいよ。
- 111 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 03:18:37 ]
- >>108
class Foo: def get_var_name(self): for key, value in globals().items(): if id(value) == id(self): return key return None foo = Foo() print foo.get_var_name() この質問、ちょくちょく出るけど Python で「変数名を取得したい」と思ったら十中八九「設計ミス」だと思う。
- 112 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 03:20:14 ]
- うは、かぶったw
結婚してください。 ヾ(o゚ω゚o)ノ"プニプニ!
- 113 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 03:26:57 ]
- >111
複数の変数が同じオブジェクトを指してるときはうまく動作しないね。 まあ、>110,111の言うとおり設計見直した方がいいと思う。
- 114 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 03:57:58 ]
- import traceback
import re class Foo: def get_var_name(self): stack = traceback.extract_stack(limit=2) return re.search(r"([_a-zA-Z][_a-zA-Z0-9]+)\.get_var_name", stack[0][3]).group(1) foo = Foo() print foo.get_var_name()
|

|