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

如何在Python中获取用户定义的变量?,python,python-2.7,Python,Python 2.7,在提出这个问题之前,谷歌和Stack Overflow已经搜索过了,但没有成功。因此,这不是一个微不足道的问题 我有两个模块:Main和module1,我在Main中编写代码: import module1 dict1= module1.getdict_userdefinedvariable() 然后以编程方式操纵dict1进行检查(断言、验证等) 但是,如果在getdict_userdefinedVariable()中,我使用的是Globals()或Vars(), 我只能访问子模块中

在提出这个问题之前,谷歌和Stack Overflow已经搜索过了,但没有成功。因此,这不是一个微不足道的问题

我有两个模块:Main和module1,我在Main中编写代码:

  import module1
  dict1= module1.getdict_userdefinedvariable()
然后以编程方式操纵dict1进行检查(断言、验证等)

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

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

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

who_ls in ipython, 

但是它包含模块和函数名……

这真的对您有用吗?我试过-列出了我的VAR: Niek de Klein的所有功劳,以下是他的回答: 如果不在变量前加下划线,可以:

#!/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

您试图解决的实际问题是什么?将仅用户定义的变量列表放入词汇表中,然后再操作词汇表。不,这正是您试图做的事情。你为什么要这么做?这可能是一个错误。显然,有几个人不同意你对问题合法性的评估,但你没有证据表明他们中的任何人都不能回答。人们无法回答,因为你问的不清楚。正确地重写你的问题。给我们更多的上下文,给我们举个例子,重新表述一些信息,等等。是的,50%。虽然没有参数返回的函数可能不会被过滤。我们可以尝试一下:除此之外。如果我想在子模块中使用,这不会捕获main中的变量以获得main(我认为有2个选项)通过共享资源模块或(错误的反向导入)或最好的方式使其变量对子模块可见:只需在main中使用getvars(module)或replicate方法(可能在子模块中甚至不需要它)然后把主音的dict1和副音的dict2组合起来,做任何需要的事情