同一项目下py文件的执行顺序

假如有一个py文件如下

1
2
3
4
5
6
7
8
9
10
# config.py

import argparse

parser = argparse.ArgumentParser()
arg_list = []

def get_config():
config, unparsed = parser.parse_known_args()
return config, unparsed

另一个py文件如下

1
2
3
4
5
6
# gcrn_main.py
import numpy as np
from gconvRNN.config import get_config

if __name__ == "__main__":
config, unparsed = get_config()

他们的执行顺序是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
运行 gcrn_main.py
执行 import numpy as np
执行 from gconvRNN.config import get_config

跳转到 config.py

执行 import argparse
执行 parser = argparse.ArgumentParser()
执行 arg_list = []

然后运行到
def get_config()
这一行
跳转回 gcrn_main.py

执行 if
执行 get_config

跳转到 config.py

执行 get_config()

并且!

config.py 里面的全局变量parser是一直存在的!可以被get_config()调用的!