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, 不过这叫杀鸡用牛刀...