Python学习之路:第三模块知识回顾

静态方法
与类无关,不能访问类里的任何属性和方法
类方法
只能访问类变量
属性@property
把一个方法变成一个静态属性
flight.status
@status.setter
flight.status = 3
@status.delter
反射
getattr(obj,str)
setattr(obj,str,val)
hasattr(obj,str)
delattr(obj,str)
__new__
__call__

class Foo(object):
def __call__()
print"call"
Foo()()#执行call方法

__metaclass__ 用来定义这个类以怎样的形式被创建

异常处理
try
...
except(ValueError,KeyError), e # in 2.7
except(ValueError,KeyError)as e # in 3.x
except Exception as e: #放在异常处理最后面
else: #没发生异常就执行
finally #无论如何都执行
raise ValueError

断言
assert type(obj.name) is str
print("ddddd")

socket
所有的网络协议是都数据的收发,TCP/IP,UDP send,recv
family address
AF.INET ipv4
AF.INET6
AF.UNIX local

socket protocol type
sock.SOCK_STREAM tcp/ip
socket.SOCK_DGRAM 数据报式socket for UDP
server(服务端)
server = socket.socket(AF.INET,sock.SOCK_STREAM)
server.bind(localhost,9999)
server.listen()
while True:
conn,addr = server.accept()#阻塞

while True:
print("new conn",addr)
data = conn.recv(1024) #官方建议不超过8192(8KB)
if not data:
break
print(data)
conn.send(data.upper())

#客户端已断开,conn.recv收到的数据全是空数据

client(客户端)
client = socket.socket()
client.connect(serverip,port)
client.send(data)
client.recv(dat)



posted @ 2018-02-27 15:44  Py小白  阅读(206)  评论(0编辑  收藏  举报