我用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
有人可以帮我弄清楚吗,非常感谢!
答案 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()