我在一个模块中有一个函数,它列出了已定义的变量
简化的例子:
for var_name in globals():
if not var_name.startswith('__'):
var_value = eval(var_name)
var_type = type(var_value)
print(var_name, "is", var_type, "and is equal to ", var_value)
当我从origin模块中运行它时,它工作,但当模块导入到另一个脚本时,它不起作用。它只读取原点模块中定义的变量。
我也试过:
import __main__
for var_name in __main__.__dict__:
但这也不起作用。当导入到另一个脚本时,我如何才能使这个函数工作?
谢谢!
您的意思是使用__main__.__dict__
,而不是__main__.dict
。这样,通过一些小的循环修改(即eval
将不会像您希望的那样在此上下文中工作,而是使用__main__.__dict__[var_name]
)应该使您的代码工作。