如何在Python中获取用户定义的变量?

时间:2016-11-17 08:03:32

标签: python python-2.7

在提出问题之前,已经在Google和Stack-Overflow上搜索过此内容,但没有成功。因此,这不是一个微不足道的问题......

我有两个模块:Main和module1,我在Main中执行此代码:

  import module1
  dict1= module1.getdict_userdefinedvariable()

然后以编程方式操作dict1来检查(断言,验证,......)。

但是,如果在getdict_userdefinedVariable()中,我使用的是Globals()或Vars(), 我只能访问子模块中定义的变量。

此外,Globals(),Vars()或Ipython who_ls提供所有名称的列表,包括用户定义的模块名称,用户定义的函数名称。

那么,我们如何通过删除 USER定义的模块,用户定义的函数名称来获取Main模块中定义的变量并仅过滤用户定义的变量?

who_ls in ipython, 

但它包含模块和函数名....

1 个答案:

答案 0 :(得分:0)

这不适合你吗?我试过了 - 列出了我的vars: Niek de Klein的所有学分,这是他的回答: List user defined variables, python 如果您没有在变量前放置任何下划线,您可以这样做:

#!/us/bin/python                                                                                    

foo1 = "Hello world"
foo2 = "bar"
foo3 = {"1":"a", "2":"b"}
foo4 = "1+1"

for name in dir():
    if not name.startswith('__'):
        myvalue = eval(name)
        print name, "is", type(myvalue), "and is equal to ", myvalue