在提出问题之前,已经在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,
但它包含模块和函数名....
答案 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