python模块知识一 自定义模块、time、datetime时间模块

第五章 模块 1.自定义模块:

模块分类:

内置模块(标准库)-- python解释器自带的.py文件(模块)

第三方模块(各种大神写的)-- 需要额外下载(并发编程pypi)

自定义模块(自己写的)--不用额外下载

每一个py文件就是一个模块

import #导入模块

模块的好处:

避免些重复代码

可以多次利用

拿来主义

导入模块发生的事情:

当前的名称空间中开辟一个新空间(test)

将模块中所有的代码执行

通过 模块名.函数名 进行查找函数

使用别名使文件名更短:

​ import test as t

print(locals())#查看当前空间的变量 i mport test print(locals()) #调用导入模块的函数 test.func() #使用别名 import test as t t.func()

不同模块使用同一别名做兼容性

msg = {1:"扳手",2:"螺丝刀"} choose = input(msg) if choose == 1: import meet as t elif choose == 3: import test as t t.func()

from :

​ from 和import区别:

​ import:#将整个模块运行

​ 缺点:占用内存大。

​ 优点:不会和当前文件定义的变量或者函数发生冲突

​ from:

​ 缺点:会与当前的文件定义的变量或者函数发生冲突,(可以用别名解决)

​ 优点:占用内存小

from * :--拿模块所有

会出现覆盖现象,不能解决,不建议使用

__all__ = ["可被导入的函数名和变量名"]#写在模块中配合from * 使用指定要拿的

name = 'cc' def func(): print('is 666') from test import * print(name) func() name = "ww" from test import name as n#别名 print(name) print(n)

模块导入的坑

例如:不要三个py文件相互导入,会形成环路

模块的两种用法:

脚本:(在cmd中执行 python text.py

模块:自测函数不会被导入

def func(): print(1) if __name__ == '__main__':#自测接口 func()

导入路径:

相对路径:

from day15.t1 import meet print(meet.name)

绝对路径:

#错误引用 from r"D:\" import meet from ../ #正确引用 from sys import path print(sys.path) path.insert(0,"D:\\") import meet print(meet.name)

sys.path中模块的顺序:自定义 > 内置 > 第三方

2.time --时间模块

time.time():--时间戳,浮点数,可运算

time.sleep():--睡眠 #秒

import time print(time.time() + 5000) time.sleep(3)#睡眠3秒

time.strftime("格式化","结构体时间"):将时间戳、结构体时间转换成字符串时间

time.gmtime():--元组形式 命名元组,结构体时间,格林尼治时间

time.localtime():计算机当前时间,结构体时间

print(time.strftime("%Y-%m-%d %H:%M:%S")) print(time.gmtime()) print(time.gmtime()[0]) print(time.gmtime().tm_year) #将时间戳转换成字符串时间 print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime(15000)))

time.strptiem():将字符串时间转换成结构化时间

time.mktime():将结构化时间转换成时间戳

print(time.strptime("2024-3-16 12:03:30","%Y-%m-%d %H:%M:%S")) #将字符串时间转换成时间戳 print(time.mktime(time.strptime("2024-3-16 12:03:30","%Y-%m-%d %H:%M:%S"))) print(time.mktime(time.gmtime())) 3.datetime 模块

​ 用处:记录日志使用,计算时间

from datetime import datetime,timedelta print(datetime.now())#获取当前时间 print(type(datetime.now()))#--对象 print(datetime(2019,5,20,13,14,00))#指定日期标准化 print(datetime(2019,5,20,13,14,00) - datetime(2019,5,20,13,14,00)) #将当前时间转换成时间戳 t = datetime.now() print(t.timestamp()) #将时间戳转换成当前时间 import time print(datetime.fromtimestamp(time.time())) print(datetime.fromtimestamp(150000)) #字符串转成对象 print(type(datetime.strptime("2019-10-10 22:23:24","%Y-%m-%d %H:%M:%S"))) #将对象转成字符串 print(str(datetime.now())) print(datetime.now().strftime("%Y-%m-%d %H:%M:%S")) #timedelta 时间运算.加减 print(datetime.now() + timedelta(hours = 30 * 24 *12))

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdpyy.html