目录
1、模块
模块化编程的一般流程:
1、设计API,进行功能描述
2、编写代码实现API中描述的功能
3、在模块中编写测试代码,并消除全局代码‘
4、使用私有函数实现不被外部客户端调用的模块函数
1.1模块的创建和调用
'''
用于计算公司员工的工资
'''
company="北京尚学堂"
def yearSalary(monthSalary):
#计算年薪
"""根据月薪,计算出年薪:month*12"""
return monthSalary*12
def daySalary(monthSalary):
"""根据月薪计算出一天的 工资:一个月按照22.5天计算"""
return monthSalary/22.5
if __name__=="__main__":
print(yearSalary(5000))
C:\Users\86189\anaconda\envs\pytorch\python.exe C:/Users/86189/PycharmProjects/pythonProject/pythonday11/salary.py
60000
进程已结束,退出代码0
test.py
import math
import salary
#math.sin()
print(salary.__doc__)
print(salary.daySalary.__doc__)
print(salary.__name__)
C:\Users\86189\anaconda\envs\pytorch\python.exe C:/Users/86189/PycharmProjects/pythonProject/pythonday11/test,py.py
用于计算公司员工的工资
根据月薪计算出一天的 工资:一个月按照22.5天计算
salary
进程已结束,退出代码0
1.2模块的导入
import 导入的是模块
from。。。import 导入的是模块中的一个类
1.3_import_()的动态导入指定模块
test02
import math
print("in test02,模块被加载。。。")
def t1():
pass
test03
import test02
import test02
print("####")
import importlib
importlib.reload(test02)
C:\Users\86189\anaconda\envs\pytorch\python.exe C:/Users/86189/PycharmProjects/pythonProject/pythonday11/test03.py
in test02,模块被加载。。。
####
in test02,模块被加载。。。
进程已结束,退出代码0
2、包的使用
# import aa.module_a1
# from aa.module_a1 import fun_AA
# fun_AA()
import math
import aa
print(aa.math.pi)
print(id(math))
print(id(aa.math))
C:\Users\86189\AppData\Local\Programs\Python\Python310\python.exe C:/Users/86189/PycharmProjects/pythonProject/pythonday11/包/module_b1.py
导入aa包
3.141592653589793
2338789502432
2338789502432
进程已结束,退出代码0
aa包
import turtle
import math
print("导入aa包")
导入多个子包
module_a1
def fun_A():
print("in module_a1")
__int___.py
import turtle
import math
print("导入aa包")
__all__=["module_a1","module_a2"]
module_b1
from aa import *
module_a1.fun_A()
C:\Users\86189\AppData\Local\Programs\Python\Python310\python.exe C:/Users/86189/PycharmProjects/pythonProject/pythonday11/包/module_b1.py
导入aa包
in module_a1
进程已结束,退出代码0
from . import module_b1导入同级目录
from .. 包.aa import * 导入上级目录