NameError:尽管已导入,但类名未定义

时间:2020-02-03 07:55:03

标签: python python-import python-module

我用Spyder编写了一个项目,其中包含几个模块文件,例如tester.py和scheduler.py。我在tester.py中创建了以下类:

class Tester(object):
    def run(self):
        pass

将Tester类导入scheduler.py时,出现名称错误(我使用Anaconda Prompt访问项目文件夹并运行python scheduler.py):

from tester import Tester
class Scheduler():
    def schedule_tester(self):
        getter = Tester()
        while True:
            getter.run()

if __name__ == '__main__':
    scheduler = Scheduler()
    scheduler.schedule_tester()

Traceback (most recent call last):
NameError: name 'Tester' is not defined

有人可以帮我弄清楚吗,非常感谢!

1 个答案:

答案 0 :(得分:1)

您的调度程序类将getter实例化为Tester类的实例。 然后,尝试对导入的Tester类使用run方法。 这是不可能的,因为它是常规方法而不是类方法。 我认为您想在while循环中调用getter.run()而不是Tester.run()。 因此您的调度程序将如下所示:

class Scheduler():
    def schedule_tester(self):
        getter = Tester()
        while True:
            getter.run() # not Tester.run()