回顾模块3

 

 

  1 回顾模块3
  2 
  3 
  4 静态方法
  5     与类无关,不能访问类里的任何属性和方法
  6 类方法
  7     只能访问类变量
  8 属性@property
  9     把一个方法变成一个静态属性,
 10     flight.status
 11     @status.setter
 12     flight.status = 3
 13     @status.delter
 14 反射
 15     getattr(obj,str)
 16     setattr(obj,str,val)
 17     hasattr(obj,str)
 18     delattr(obj,str)
 19 
 20 
 21 __new__
 22 
 23 class Foo(object):
 24     def __call__()
 25         print 'call'
 26         
 27 Foo()()#执行call方法
 28 
 29 
 30 __metaclass__ 用来定义这个类以怎样的形式被创建
 31 
 32 
 33 try
 34     ...
 35     
 36 except (ValueError,KeyError) as e :
 37 
 38 except Exception as e:  #放在异常处理的最后面。
 39 
 40 #断言 #assert
 41 assert type(obj.name) is int
 42 
 43 if type(obj.name)is not int :
 44     exit('must be in')
 45     
 46 
 47 
 48 else:   #没有发生异常,就执行
 49 
 50 finally,    #无论如何都执行
 51 
 52 __call__
 53 
 54 
 55 
 56 
 57 
 58 
 59 
 60 socket
 61 
 62     tcp/ip  send,recv
 63 
 64     udp
 65 
 66     family address
 67         AF.INET     IPV4
 68         AF.INET6    IPV6
 69         AF.UNIX    local本地
 70 
 71     socket protocol type
 72         sock.SOCK_STREAM  tcp/ip
 73         socket.SOCK_DGRAM  数据报式 socket , for UDP
 74 
 75     #服务端
 76 
 77     server = socket.socket(AF.INET,sock.SOCK_STREAM)  #IPV4
 78 
 79     server.bind(localhost,9999)
 80 
 81     server.listen()
 82 
 83 
 84 while True:
 85     conn,addr = server.accept()  #阻塞(等待)
 86 
 87     while True:
 88         print('new conn',addr)
 89         
 90         data = conn.recv(1024)  #8192 官方最大值8K  # recv默认是阻塞的
 91         if not data:
 92             break     #客服端已断开, xonn.recv 收到的就都是空数据,
 93 
 94         print (data)
 95 
 96         conn.send(data.upper())
 97 
 98 
 99 
100 #客户端
101 
102 
103     client
104         client =socket.socket()
105         client.connect(serverip,9999)
106         client.send(data)
107         client.send(data)
108         client.recv(data)
回顾模块3

 

posted @ 2017-08-10 14:15  颜言  阅读(128)  评论(0编辑  收藏  举报