python新手發問
如題 要如何返回當前已存在且為特定型態的變數名稱list
有沒有任何比較簡單的函數或方法可以做到
而且包含非global的變數(函數內定義等)
目前我想破頭 只能得到global變數的list
但是非global的 一樣無法在list內
如附圖
而且 最糟糕的還是用到eval函數
希望前輩們能提供不要用到eval函數
而且能達到目的的方法
感激不盡
http://i.imgur.com/Kco2ijV.jpg
作者:
bazoo (surfers'paradise)
2017-06-24 11:38:00[x for x in dir() if isinstance(globals()[x], int)]這樣應該可行
作者:
Sunal (SSSSSSSSSSSSSSSSSSSSSSS)
2017-06-24 13:08:00你這樣做的目的是?scope不一樣是要怎麼存取func內的變數 除非你加global
作者:
zerof (貓橘毛發呆雕像)
2017-06-24 16:59:00大家都看得懂在講什麼好厲害...
你式子跑完就被 gc 回收掉了,還有什麼區域變數可回傳?好奇心發作前,先把 variable scope 學好再講別的好嗎?你要是真的崇拜,也去學 C 替 python 寫模組,用 C 寫個可以傳出區域變數的函式就得了.加個 static 就能做到了,幹嘛來折騰物件導向的 Python
要看到 local 變數可用 locals()但你的例子中,只要不是在func裡面,是不可能看到tot的
所以不要以scope的觀念下去看 這題無解囉 沒有辦法把原本的code弄成string去用re分析?
Python 語法不是正規能夠分析的你可能要順便學一下 formal languages XD
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2017-06-25 14:19:00真想分析可以用 ast, 不過這叫殺雞用牛刀...