模块英文为Modules,一个模块中可以包含N多个函数,在python中一个扩展名为 .py
的文件就是一个模块
使用模块的好处
pythondef fun(): #一个模块可以包含N多个函数
pass
def fun2():
pass
class Student: #可以包含N多个类
native_place='吉林' # 类属性
def eat(self,name,age):
self.name=name
self.age=age
@classmethod
def cm(cls):
pass
@staticmethod
def sm():
pass
a=10 #可以包含N多个语句
b=20
print(a+b)
创建模块:新建一个 .py
文件,名称尽量不要与python自带的标准模块名称相同。
导入整个模块: import 模块名称 [as 别名]
,导入模块里的指定内容: from 模块名称 import 函数/变量/类
。
pythonimport math #第一种导入整个模块,关于数学运算的模块
print(id(math))
print(type(math))
print(math)
print(math.pi) #输出的是圆周率
print(dir(math)) #查看都有哪些属性和方法
print(math.pow(2,3),type(math.pow(2,3))) #计算的是2的3次方
print(math.ceil(9.001))
print(math.floor(9.999))
from math import pi #第二种导入的方式
print(pi)
#新建一个 calc.py 的文件,自定义模块
# def add(a,b):
# return a+b
# def div(a,b):
# return a/b
import calc #导入自定义模块
print(calc.div(2,10))
print(calc.add(2,3))
在每个模块的定义中都包括一个记录模块名称的变量 __name__
,程序可以检查该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其他程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的 __name__
变量的值为 __main__
,示例: if __name__ == '__main__' : pass
python# calc.py 文件
def add(a,b):
return a+b
if __name__ == '__main__':
print(add(10,20)) #只有当点击运行 calc 时,才会执行运算,被其他模块引用后不会被执行
# main.py 文件
import calc
print(calc.add(100,50)) #引用calc模块,只计算当前程序的计算,calc就不是主程序了
包是一个分层次的目录结构,它将一组功能相近的模块组织在一个目录下,作用: 代码规范和避免模块名称冲突。
包与目录的区别
__init__.py
文件的目录成为包__init__.py
文件包的导入: import 包名.模块名
python#package1包下面有 module_A.py 和 module_B.py 两个模块
#在 main.py 的模块中导入 package1 包
import package1.module_A as ma # ma是package1.module_A这个模块的别名
print(ma.a)
#使用import方式进行导入时,只能导入包名或者模块名
import package1
import calc
#使用 from...import 可以导入包,模块,函数,变量等
from package1 import module_A
from package1.module_A import a
模块名 | 描述 |
---|---|
sys | 与python解释器及其环境操作相关的标准库 |
time | 提供与时间相关的各种函数的标准库 |
os | 提供了访问操作系统服务功能的标准库 |
calendar | 提供与日期相关的各种函数的标准库 |
urllib | 用于读取来自网上(服务器)的数据标准库 |
json | 用于使用json序列化和饭序列化对象 |
re | 用于在字符串中执行正则表达式匹配和替换 |
math | 提供标准算数运算函数的标准库 |
decimal | 用于进行精确控制运算精度、有效数位和四舍五入操作的十进制运算 |
logging | 提供了灵活的记录事件、错误、警告和调试信息等日志信息的功能 |
pythonimport 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) #输出圆周率
第三方模块安装: pip install 模块名
,使用: import 模块名
。
python#先安装第三方模块,在命令行窗口执行 pip install schedule
import schedule
import time
def job():
print('打印一句话')
schedule.every(3).seconds.do(job) #每3秒执行一下job函数,可以做一个定时任务
while True:
schedule.run_pending()
time.sleep(1) #休眠1秒
本文作者:柯南
本文链接:
版权声明:©2023 柯南 All rights reserved.