python模块和包
模块概念
一个.py文件就是模块。
优点
方便组织代码
提高代码的维护性
模块分类
python标准库
第三方模块
应用程序自定义模块
模块调用
调用的原理:通过搜索路径,找到模块的文件,将模块里面所有的代码解释后,将解释后的对象给导入的模块,我们再通过模块调用模块里面的各种方法。
import 模块1, 模块2...
from 模块 import 方法
from 模块 import * # 此方法不推荐使用
from 模块 import 方法 as 新名字
包
只要建立包,包目录下面必须有__init__.py文件,包是用来组织模块的,模块是用来组织函数的。
调用
包在import package的时候,只会解释__init__.py文件,其它的模块不会被解释。
import package.module
package.module.method()
from package import module
module.method()
from package1.package2[.module] import module
module.method()
禁止使用
import package1.package2.method
设计好的目录结构
目录结构的优点
1、可读性高。
2、可维护性高。
目录组织方式
Foo/
|-- bin/ 存放项目的一些可执行文件,当然你可以起名script/之类的也行。
| |-- foo
|
|-- foo/ 存放项目的所有源代码。源代码中的所有模块、包都应该放在此目录,不要置于顶层目录;其子目录tests/存放单元测试代码; 程序的入口最好命名为main.py。
| |-- tests/
| | |-- __init__.py
| | |-- test_main.py
| |
| |-- __init__.py
| |-- main.py
|
|-- docs/ 存放一些文档。
| |-- conf.py
| |-- abc.rst
|
|-- setup.py 安装、部署、打包的脚本。
|-- requirements.txt 存放软件依赖的外部Python包列表。
|-- README 项目说明文件。
部分测试代码
import os,sys
print(sys.path) # 返回当前系统环境变量,对象为列表类型,元素为字符串
print(__file__) # 返回当前文件的相对路径
print(os.path.abs.path(__file__)) # 返回当前文件的绝对路径
print(os.path.dirname(os.path.abspath(__file__))) # 返回上级的目录名
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #返回上级的上级目录名
sys.path.append(BASE_DIR) #找到
思路来源
老男孩全栈开发
浙公网安备 33010602011771号