c3算法,网络编程you

c3算法:用来判断多个类之间有继承关系时怎么辨别他们的执行顺序

例子:

 1 class A(object):
 2     pass
 3 
 4 class B(A):
 5     pass
 6 
 7 class C(B):
 8     pass
 9 
10 class D(object):
11     pass
12 
13 class E(D,C):
14     pass
15 
16 class F(object):
17     pass
18 
19 class G(F):
20     pass
21 
22 class H(C,G):
23     pass
24 
25 class Foo(E,H):
26     pass
27 
28 
29 # print(E.__mro__)
30 # print(H.__mro__)
31 """
32 L(Foo + L(E)  + L(H) )
33 
34 
35 
36 L(E) = E,D,C,B,A,object
37 L(H) = H,C,B,A,G,F,object
38 
39 Foo = (object) + (G,F,object)
40 Foo,E,D,H,C,B,A,G,F,object
41 """
42 print(Foo.__mro__)#用来直接判断执行顺序.类名后面加__mro__方法
View Code

网络编程基础:

例子:

服务器基本格式:

 1 import socket
 2 
 3 # 创建服务端socket对象
 4 server = socket.socket()
 5 
 6 # 绑定IP和端口
 7 server.bind(('192.168.13.155',8000))
 8 
 9 # 后边可以等5个人
10 server.listen(5)
11 
12 print('服务端准备开始接收客户端的连接')
13 # 等待客户端来连接,如果没人来就傻傻的等待。
14 # conn是客户端和服务端连接的对象(伞),服务端以后要通过该对象进行收发数据。
15 # addr是客户端的地址信息。
16 # #### 阻塞,只有有客户端进行连接,则获取客户端连接然后开始进行通信。
17 conn,addr = server.accept()
18 
19 print('已经有人连接上了,客户端信息:',conn,addr)
20 
21 
22 # 通过对象去获取(王晓东通过伞给我发送的消息)
23 # 1024表示:服务端通过(伞)获取数据时,一次性最多拿1024字节。
24 data = conn.recv(1024)
25 print('已经有人发来消息了',data)
26 
27 
28 # 服务端通过连接对象(伞)给客户端回复了一个消息。
29 conn.send(b'stop')
30 
31 # 与客户端断开连接(放开那把伞)
32 conn.close()
33 
34 # 关闭服务端的服务
35 server.close()
View Code

客户端基本格式:

import socket

client = socket.socket()

# 王晓东向服务端发起连接请求(递伞)
# 阻塞,去连接,直到连接成功后才会继续向下走。
client.connect(('192.168.13.155',8000))


# # 链接上服务端后,向服务端发送消息
client.send(b'hello')


# 王晓东等待服务端给他发送消息
data = client.recv(1024)
print(data)

# 关闭自己
client.close()
View Code
原文地址:https://www.cnblogs.com/li-123-peng/p/9578858.html