第十四章 模块 以及 python中的包
121. 什么叫模块—模块化编程的好处
(1)模块英文为Modules
(2)函数与模块的关系:
一个模块中可以包含N多个函数、N多个类:【类属性、类方法、静态方法、实例对象】、N多个语句
一个项目会包含N多个模块
组成了Python程序
(3)在Python中一个扩展名为.py的文件就是一个模块
(4)使用模块的好处
·方便其它程序和脚本的导入并使用
·避免函数名和变量名冲突
·提高代码的可维护性
·提高代码的可重用性
print('--------------------121.什么叫模块—模块化编程的好处------------------')
def fun(): #函数
pass
def fun2():
pass
class Student: #类
native_place='江苏' #类属性
def eat(self,name,age):
self.name=name
self.age=age
@classmethod
def cm(cls):
pass
@staticmethod
def sm():
pass
a=10
b=20
print(a+b)
--------------------121.什么叫模块—模块化编程的好处------------------
30
122. 模块的导入
(1)创建模块
·新建一个.py文件,名称尽量不要与Python自带的标准模块名称相同
(2)导入模块
① Import 模块名称 [as别名]
② From 模块名称 import 函数变量/类
③ 导入自己创建的模块
print('--------------------122. 模块的导入------------------')
print('--①Import 模块名称 [as别名]--')
import math #关于数学运算
print(id(math))
print(type(math))
print(math)
print(math.pi)
print('----------------------')
print(dir(math))
print(math.pow(2,3),type(math.pow(2,3)))
print(math.log(10))
print(math.ceil(9.001)) #向上取整
print(math.floor(9.9999)) #向下取整
print('--②From 模块名称 import 函数变量/类--')
from math import pi
print(pi)
print(pow(2,3))
from math import pow
print(pow(2,3))
print('--③ 导入自己创建的模块--')
#导入demo3中的calc自定义模块使用
import calc
print(calc.add(10,20))
print(calc.div(10,2))
print('---')
from calc import add
print(add(10,20))
--------------------122. 模块的导入------------------
--①Import 模块名称 [as别名]--
2582338649760
<class 'module'>
<module 'math' (built-in)>
3.141592653589793
----------------------
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
8.0 <class 'float'>
2.302585092994046
10
9
--②From 模块名称 import 函数变量/类--
3.141592653589793
8
8.0
--③ 导入自己创建的模块--
30
5.0
---
30
123. 以主程序方式运行
在每个模块的定义中都包括一个记录模块名称的变量_name_,程序可以检查该变量以确定他们在哪个模块中执行。如果一个模块不是被导入到其它程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的_name_变量的值为_main_
print('--------------------123. 以主程序方式运行------------------')
''' [calc2]
def add(a,b):
return a+b
if __name__ == '__main__':
print(add(10,20)) #只有当点击运行calc2时,才会执行运算
'''
import calc2
print(calc2.add(100,200))
--------------------123. 以主程序方式运行------------------
300
124. Python中的包
更新:Python程序 ß N多个包 ß N多个模块 ß 函数、类、语句
(1)包是一个分层次的目录结构,它将一组功能相近的模块组织在一个目录下
(2)作用:
·代码规范
·避免模块名称冲突
(3)包与目录的区别
·包含_init_.py文件的目录称为包
·目录里通常不包含_init_.py文件
(4)包的导入
import 包名.模块名
在导入含有包的模块时的注意事项
① 使用 import 方式进行导入时,只能跟包名或模块名
import package1.
import calc
② 使用from…from可以导入包,模块,函数,变量
from package1 import moduleA
from package1.moduleA import a
125. Python中常用的内容模块
模块名 | 描述 |
sys | 与python解释器及其环境操作相关的标准库 |
time | 提供与时间相关的各种函数的标准库 |
os | 提供了访问操作系统服务功能的标准库 |
calendar | 提供与日期相关的各种函数的标准库 |
urllib | 用于读取来自网上(服务器)的数据标准库 |
json | 用于使用JSON序列化和反序列化对象 |
re | 用于在字符串中执行正则表达式匹配和替换 |
math | 提供标准算术运算函数的标准库 |
decimal | 用于进行精确控制运算精度、有效数位和四舍五入操作的十进制运算 |
logging | 提供了灵活的记录事件、错误、警告和调试信息等日志信息的功能 |
print('--------------------125. Python中常用的内容模块------------------')
import sys
import time
import urllib.request
import math
print(sys.getsizeof(24))
print(sys.getsizeof(45))
print(sys.getsizeof(True))
print(sys.getsizeof(False))
print(time.time())
print(time.localtime(time.time()))
# print(urllib.request.urlopen('http://www.baidu.com').read()) #可用于爬虫
print(math.pi)
--------------------125. Python中常用的内容模块------------------
28
28
28
24
1619088196.1199284
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=22, tm_hour=18, tm_min=43, tm_sec=16, tm_wday=3, tm_yday=112, tm_isdst=0)
3.141592653589793
126. 第三方模块的安装与使用
(1)第三方模块的安装: pip install 模块名
(2)第三方模块的使用 :import 模块名
print('--------------------126. 第三方模块的安装与使用------------------')
import schedule
import time
def job():
print('哈哈---')
schedule.every(3).seconds.do(job)
while True:
schedule.run_pending()
time.sleep(1)
--------------------126. 第三方模块的安装与使用------------------
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---
哈哈---