如果在python中定义函数之前调用函数,它怎么能工作?

use*_*316 0 python program-entry-point

我想知道if __name__ == "__main__":在python 中真正做了什么,我在python3中有以下代码:

def main():
    test();

def test():
    print("hello world " + __name__);

if __name__ == "__main__":
    main();
Run Code Online (Sandbox Code Playgroud)

我们知道在使用之前我们必须声明一个函数,所以if部分内部的函数调用工作正常,在语句main()内部调用之前定义if,但是test()函数怎么样,它在调用之后定义而且没有错误:

def main():
    test();

def test():
    print("hello world " + __name__);
Run Code Online (Sandbox Code Playgroud)

如果在test()调用函数后定义函数怎么能呢?

oef*_*efe 5

测试是不是它被称为后确定.订单是:

  1. 定义main.这引用了(但未定义)test,但实际上并没有使用(调用)它.Python就是这样.
  2. 定义test.
  3. 打电话main.
  4. main电话test.没问题,因为它已经定义了.