如何确定一个变量是否存在于另一个 Python 文件中

paa*_*sno 6 python file

我有两个 python 文件。从python文件#1,我想检查python文件#2中是否定义了某个全局变量。

做这个的最好方式是什么?

Yuv*_*dam 6

try:
    from file import varName
except ImportError:
    print 'var not found'
Run Code Online (Sandbox Code Playgroud)

或者你可以这样做(如果你已经导入了文件):

import file
# ...
try:
    v = file.varName
except AttributeError:
    print 'var not found'
Run Code Online (Sandbox Code Playgroud)

这仅在 var 是全局的情况下才有效。如果您在使用作用域变量,则需要使用自省。


Eri*_*got 6

您可以直接测试file2模块(它是一个模块对象)是否具有名称正确的属性:

import file2
if hasattr(file2, 'varName'):
    # varName is defined in file2…
Run Code Online (Sandbox Code Playgroud)

这可能比try… except…方法更直接和易读(取决于您想如何使用它)。