Python 学习——模块
写此博客 是为了激励自己,并且将自己的心得以及遇到的问题与人分享
一、学习笔记
1.__name__
当__name__在调用中执行时,打印出来的是__main__
def hello(): print('hello') print(__name__) # __main__ if __name__ =='__main__': hello() #hello
而当__name__在bin模块中导入后,并不会执行其中的函数,打印出来的__name__为 foo,这样也就是不满足了条件
if __name__ == '__main__',从而不执行其中的测试代码
import foo #foo
以后写代码时将逻辑代码都放到if __name__ == "__main__":后面,将函数声明都放到这条语句上面。
2.目录结构
假设你的项目名为foo, 我比较建议的最方便快捷目录结构这样就足够了:
Foo/
|-- bin/
| |-- foo
|
|-- foo/
| |-- tests/
| | |-- __init__.py
| | |-- test_main.py
| |
| |-- __init__.py
| |-- main.py
|
|-- docs/
| |-- conf.py
| |-- abc.rst
|
|-- setup.py
|-- requirements.txt
|-- README
简要解释一下:
-
-
bin/
: 存放项目的一些可执行文件,当然你可以起名script/
之类的也行。foo/
: 存放项目的所有源代码。(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。(2) 其子目录tests/
存放单元测试代码; (3) 程序的入口最好命名为main.py
。docs/
: 存放一些文档。setup.py
: 安装、部署、打包的脚本。requirements.txt
: 存放软件依赖的外部Python包列表。README
: 项目说明文件。
-