[问题] 制作当前整数型态的变量名称list

楼主: LessonWang (橘白Cat)   2017-06-24 10:50:32
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
作者: freeunixer (御剑客)   2017-06-24 15:06:00
新手就不要在那想洞想缝,老实一点把东西学好...
作者: zerof (猫橘毛发呆雕像)   2017-06-24 16:59:00
大家都看得懂在讲什么好厉害...
作者: freeunixer (御剑客)   2017-06-24 17:19:00
你式子跑完就被 gc 回收掉了,还有什么区域变量可回传?好奇心发作前,先把 variable scope 学好再讲别的好吗?你要是真的崇拜,也去学 C 替 python 写模组,用 C 写个可以传出区域变量的函式就得了.加个 static 就能做到了,干嘛来折腾物件导向的 Python
作者: darkgerm (黑骏)   2017-06-24 20:28:00
要看到 local 变量可用 locals()但你的例子中,只要不是在func里面,是不可能看到tot的
楼主: LessonWang (橘白Cat)   2017-06-24 22:21:00
所以不要以scope的观念下去看 这题无解囉 没有办法把原本的code弄成string去用re分析?
作者: darkgerm (黑骏)   2017-06-25 14:08:00
Python 语法不是正规能够分析的你可能要顺便学一下 formal languages XD
作者: uranusjr (←這人是超級笨蛋)   2017-06-25 14:19:00
真想分析可以用 ast, 不过这叫杀鸡用牛刀...

Links booklink

Contact Us: admin [ a t ] ucptt.com