作者LessonWang (橘白Cat)
看板Python
标题[问题] 制作当前整数型态的变数名称list
时间Sat Jun 24 10:50:32 2017
python新手发问
如题 要如何返回当前已存在且为特定型态的变数名称list
有没有任何比较简单的函数或方法可以做到
而且包含非global的变数(函数内定义等)
目前我想破头 只能得到global变数的list
但是非global的 一样无法在list内
如附图
而且 最糟糕的还是用到eval函数
希望前辈们能提供不要用到eval函数
而且能达到目的的方法
感激不尽
http://i.imgur.com/Kco2ijV.jpg
-----
Sent from JPTT on my Asus ASUS_Z00UD.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 27.242.43.210
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1498272634.A.131.html
1F:推 bazoo: [x for x in dir() if isinstance(globals()[x], int)] 06/24 11:38
b大的方法可以不用到eval 可是区域变数一样没有在list中欸
我还特地把dir函数结果印出来 却没有发现到区域变数
2F:→ bazoo: 这样应该可行 06/24 11:39
※ 编辑: LessonWang (27.242.43.210), 06/24/2017 12:15:19
3F:推 Sunal: 你这样做的目的是? 06/24 13:08
4F:推 Sunal: scope不一样是要怎麽存取func内的变数 除非你加global 06/24 13:26
目的吗 ?纯粹只是想要知道有没有哪些东西或目的是python做不到的 真的很崇拜开发许多python模组的前辈们 为解决问题 开发很多效能高的模组
※ 编辑: LessonWang (27.242.43.210), 06/24/2017 14:31:12
5F:→ freeunixer: 新手就不要在那想洞想缝,老实一点把东西学好... 06/24 15:06
新手就不能有好奇心吗xd?
而且也是边问边学啊 没有不好吧xd
※ 编辑: LessonWang (27.242.43.210), 06/24/2017 15:23:20
6F:→ zerof: 大家都看得懂在讲什麽好厉害... 06/24 16:59
7F:嘘 freeunixer: 你式子跑完就被 gc 回收掉了,还有什麽区域变数可回传? 06/24 17:19
8F:→ freeunixer: 好奇心发作前,先把 variable scope 学好再讲别的好吗? 06/24 17:21
9F:→ freeunixer: 你要是真的崇拜,也去学 C 替 python 写模组, 06/24 17:26
10F:→ freeunixer: 用 C 写个可以传出区域变数的函式就得了. 06/24 17:27
11F:→ freeunixer: 加个 static 就能做到了,干嘛来折腾物件导向的 Python 06/24 17:31
12F:推 darkgerm: 要看到 local 变数可用 locals() 06/24 20:28
13F:→ darkgerm: 但你的例子中,只要不是在func里面,是不可能看到tot的 06/24 20:32
14F:→ LessonWang: 所以不要以scope的观念下去看 这题无解罗 没有办法把 06/24 22:21
15F:→ LessonWang: 原本的code弄成string去用re分析? 06/24 22:21
16F:→ darkgerm: Python 语法不是正规能够分析的 06/25 14:08
17F:→ darkgerm: 你可能要顺便学一下 formal languages XD 06/25 14:08
好吧 我自讨苦吃xd
※ 编辑: LessonWang (27.242.43.210), 06/25/2017 14:14:12
18F:→ uranusjr: 真想分析可以用 ast, 不过这叫杀鸡用牛刀... 06/25 14:19
抽象语法树是个很不错的工具xd
※ 编辑: LessonWang (27.242.43.210), 06/25/2017 16:02:16