Python是一种解释性语言,它是由语句执行的
(感谢viraptor的提示:当编译为字节码时,它会在每个函数的整个文件中发生)
在这种情况下,程序逐行读取并知道函数cough()和main()已定义.后来当调用main()时,Python知道它是什么,以及main()调用cough()时Python也知道它是什么.
def cough():
print('cough')
def main():
for i in range(3):
cough()
if __name__ == '__main__':
main()
在另一个案例中(下图),它是一回事.只是Python在cough()之前学习了main()函数.在这里你可能会想:“为什么python不会抛出错误,因为它不知道main()里面有什么caugh()?”好问我的朋友.
但是只要你在调用它之前定义了你的函数,一切都很好.因为记住Python不会“检查”函数是否被定义,直到你调用它.所以在这种情况下,当python正在读取函数main()时,甚至没有定义cough(),因为我们直到下面定义了cough()之后才调用main().
def main():
for i in range(3):
cough()
def cough():
print('cough')
if __name__ == '__main__':
main()
希望这有助于您更好地理解Python.