1.模块和包
量变引起质变,物以类聚,把功能相似的模块打包成一个包
python——包——模块——函数——语句
便于后期反复使用、反复搭建
模块化编程的流程
- 实际API,进行功能描述
- 编码实现功能
- 模块中编写测试代码,消除全局代码
- 使用私有函数
API 应用程序编程接口
模块名对应源文件名,但仅仅有一个例外,当一个模块作为程序入口时,他的’name’的值为’main’可以根据这个特点,将模块源代码文件中的测试代码进行独立的处理
company = 'sxe'
def yearSalary(monthSalary):
"""根据传入的月薪的值,计算出年薪,monthSalary*12"""
return monthSalary*12
def daySalary(monthSalary):
'''根据传入的月薪值,计算出1天的薪资,一个月按照22.5天计算'''
return monthSalary/22.5
if __name__ =="__main__":
print(yearSalary(3000))
print(daySalary(3000))
2.模块的导入
import
from import
.py
包
包好的一组模块的包
内置模块
import本质上是调用内置函数__import__()
s = "math"
m = __import__(s)
print(m.pi)
importlib.reload可以重复被加载
3.包的使用
相当于文件夹,组织管理模块,必须包含__int__.py文件
包下面可以放包、模块
导入包执行包里面的__init__.py文件,可以批量导入
- 作为包的标识,不能删除
- 用来实现模块导入
- 包的初始化,需要统一执行代码
from . import module_A #同级目录
from … import module_AA #上级目录
4.sys.path()和模块搜索路径
- 内置模块
- 当前目录
- 程序的主目录
- pythonpath目录(如果已经设置了)
- 标准链接库目录
- 第三方库
- .pth #1行一个目录 .pth.
- .sys.path.append()临时添加的目录
5 模块的发布和安装
from distutils.core import setup
setup(
name='baizhanSuperMath',
version='1.0',
description='这是第一个对外发布的模块',
author='wy',
author_email='123@qq.com',
py_modules=['baizhanSuperMath.demo1','baizhanSuperMath.demo2']
)
具体可以后面用到再查看
6 上传模块到PyPi
- 注册账户
- 创建用户信息文件 .pypirc.
- 上传发布
- 管理