day7回顾
静态方法:
与类无关,不能访问类里的任何属性和方法
类方法:
只能访问类变量
属性@property
把一个方法变成一个静态属性
反射
getattr(obj,str)
setattr(obj,str,func)
hasattr(obj,str)
delattr(obj,str)
异常:自定义异常
raise:抓取异常
断言:
assert type(obj.name) is int
print('ddddd')
print(obj.name / 2) 断言:进行条件判断
断言:接下来程序的执行依赖于上面的判断。
socket
tcp/ip
udp
把所有底层网络协议进行封装,只有send,recv()两个方法,不同的是收发的协议不同而已,有些收发视频,文件,音频等等。
socket服务端:
server = socket.socket() #生命一个socket协议
server.bind((localhost,9999)) #绑定监听端口
server.listen() #等待链接进来
conn,addr = server.accept() #阻塞
data = conn.recv(length) #接收数据,recv默认是阻塞的
'''服务器像百度那样,这里会有算法处理,就是处理接收到的消息,在搜索引擎中查找结果,把查找的结果返回'''
conn.send(data) #接收消息之后进行发送消息
服务器端不能接收空的数据,接收空数据会陷入死循环,因此要进行判断。
socket客户端:
client = socket.socket() #生成一个socket()实例
client.connect((localhost,port)) #连接一个IP和端口号,元组形式
client.send(data) #发送消息
client.recv() #接收消息