Tips About Python Import

"Basic Introduction"

Posted by Mugen on May 9, 2020

It took longer than expected.

Question about if __name__ == '__main__'

if name == ‘main’ 如何正确理解?

name 是当前模块名,当模块被直接运行时模块名为 main 。这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行。

Same answer in English: What does if name == “main”: do?

更为详细的介绍: Python 中的 if name == ‘main’ 该如何理解

python 跨文件夹引用

先看了下__init__介绍:

How to create a Python Package with init.py

这个介绍了调用同级、子目录和上级目录下三种情况下的方法,但不是很好用:

python实现不同层级目录import 模块的方法

最后从这里得到一个可用方案:

现在假设结构如下

1
2
3
- test
    - why
    - lib

如果在test文件夹下创建一个py文件,想引入lib文件夹中的模块,那么需要:

1
2
import lib
lib.whatever()

如果在why文件夹下创建一个py文件,想引入lib文件夹中的模块,那么需要:

1
2
3
4
5
import sys
sys.path.append('../')

from lib import whatever
lib.whatever()