uuid 模块 : 生成全局唯一的id
import uuid print(uuid.uuid1()) # 32位 ,通过多个随机算法生成,print(uuid.uuid4()) # 通过随机算法生成print(uuid.uuid3(uuid.NAMESPACE_DNS,"ABC")) # 通过 md5 不变print(uuid.uuid5(uuid.NAMESPACE_DNS,"ABC")) # 通过 cha 不变
repr() 将数据转换成二进制
高级装饰器应用 权限管理
user_permission = 15# 权限计算 二进制 位与运算delete_permission = 1 # 0001 & 1001 ==> 0001 有权限add_permission = 2 # 0010 & 1001 ==> 0000 # 无change_permission = 4 # 0100 &1001 ==> 0000 # 无check_permission = 8 # 1000 &1001 ==>1000 # 无def permission(x, y): def handle_action(fn): def do_action(): if x & y: fn() else: print("没有权限") return do_action return handle_action@permission(user_permission,delete_permission)def delete(): print("执行删除")@permission(user_permission,change_permission)def change(): print("执行修改")@permission(user_permission,check_permission)def check(): print("执行查看")@permission(user_permission,add_permission)def add(): print("执行添加")add()delete()change()check()
正则表达式
- match(a,b) : 在b中从头开始匹配第一次a,不存在返回None
- search(a,b) : 在b中匹配一次a,不存在返回None
- findall(a,b) :在b中匹配全部的a,用列表保存, 不存在返回[]
- finditer(a,b) : 在b中匹配全部的a,用一个可迭代对象保存
网络通信
import socket#不同电脑之问的通信需要使用socket#socket可以在不同的电脑问通信;还可以在同一个电脑的不同程序之问通信#1.创建socket,并连接#AF_INET:表示这个socket是用来进行网络连接#S0CK_DGRAM:表示连接是一个udp连接s = socket.socket ( socket.AF_INET, socket. soCK_DGRAM)#2.发送数据#data:要发送的数据·它是二进制的数据#add ress :发送给谁﹐参数是一个元祖﹐元组里有两个元素#第0个表示目标的ip地址·第1个表示程序的瑞口号#给192.168.31.199这台主机的9000端口上发送了hellos.sendto( ' hello'.encode( 'utf8'),( '192.168.31.199', 9000 ) )#关闭socket