首页 > 解决方案 > 调用函数作为 __init__() 变量时未定义全局名称

问题描述

我有一个看起来像这样的 Python 文件:

imports

def install_tests(version):
    ...

class Test(TestConfig):
    def __init__(self,
                 parameters)
        super(Test, self).__init__(parameters=parameters)
        self.client = install_tests(version)

当我运行这个我得到这个错误:

NameError: global name 'install_tests' is not defined

我不确定这里有什么问题。install_tests在课堂之外,所以它是global,我认为我在那里有一个函数的事实表明它已定义。我错过了什么吗?

标签: pythonpython-2.7nameerror

解决方案


您必须将install_tests函数影响到类中的变量。

def install_tests(version):
    print "install_tests"

class Test(TestConfig):
    myMethod = install_tests
    def __init__(self,
                 parameters)
        super(Test, self).__init__(parameters=parameters)      
        self.client = myMethod(version)

希望能帮助到你!


推荐阅读