列出来自父模块的用户定义变量(Python 3)



我在一个模块中有一个函数,它列出了已定义的变量

简化的例子:

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])应该使您的代码工作。

相关内容

  • 没有找到相关文章