標籤:name foo 靜態 sse att setattr cal 資料 value
靜態方法
與類無關,不能訪問類裡的任何屬性和方法
類方法
只能訪問類變數
屬性@property
把一個方法變成一個靜態屬性,
flight.status
@status.setter
flight.status = 3
@status.delter
反射
getattr(obj,str)
setattr(obj,str,val)
hasattr(obj,str)
delattr(obj,str)
__new__
class Foo(object):
def __call__()
print"call"
Foo()() #執行call方法
__metaclass__ 用來定義這個類以怎樣的形式被建立
try
...
except (ValueError,KeyError),e #in 2.7
except (ValueError,KeyError) as e : 3.x
except Exception as e:放在異常處理最後面,
else: #沒發生異常,就執行
finally, 無論如何都執行
raise ValueError
斷言
assert type(obj.name) is int
print(obj.name /2)
socket
tcp/ip send, recv
udp
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 = 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 #recv預設是阻塞的
if not data:
break #用戶端已斷開, conn.recv收到的就都是空資料,
print(data)
conn.send(data.upper())
client
client = socket.socket()
client.connect(serverip, 9999 )
client.send(data)
client.send(data)
client.recv(dat)
socket 粘包
Socket網路編程知識點