我是Python的初学者,这是我的测试代码
def main():
Test1()
Test2()
if __name__ == "__main__":
main()
class Test1:
def __init__(self):
print("test1");
class Test2:
def __init__(self):
print("test2");
当我尝试“运行模块”时,我得到了
NameError:名称'Test1'未定义
我该如何运行main方法?
答案 0 :(得分:1)
您需要在文件底部移动main。你也不必使用;
# python doesn't "know" what Test1 is at this point
class Test1:
def __init__(self):
print("test1")
# At this point python "knows" what is Test1 and you can use it
class Test2:
def __init__(self):
print("test2")
# Thats why main goes in the end of the file always
# Because here python is aware of Test1 and Test2
def main():
Test1()
Test2()
if __name__ == "__main__":
main()
答案 1 :(得分:0)
在主函数之前移动Test1和Test2的定义。
class Test1:
def __init__(self):
print("test1")
class Test2:
def __init__(self):
print("test2")
def main():
Test1()
Test2()
if __name__ == "__main__":
main()
OR
移动"如果__name__ ==" __ main __":"在定义Test1和Test2类之后阻塞。
def main():
Test1()
Test2()
class Test1:
def __init__(self):
print("test1")
class Test2:
def __init__(self):
print("test2")
if __name__ == "__main__":
main()
对于C编程语言中的不完整定义,它应该是一个类似的问题。当您执行#34内的代码时;如果__name__ ==" __ main __":",则调用函数main()。在main()函数中,您将创建两个对象Test1()和Test2()。但是从文件的开头到"如果__name__ ==" __ main __":"阻止,这两个类没有定义为Test1()和Test2()。