python第十天
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python第十天相关的知识,希望对你有一定的参考价值。
不知不觉已经第十天学习了啊,目测还差上一个礼拜也就是开始学习python两个月了,估计写不到第十一篇了暂时,因为这两天在研究openstack,感觉特别好,写完这个去写一篇关于云的,其实这才是今天突然写博客的主要目的~~~
这一篇还是主要关于socket编程的,再对Python2.7版本的继承方式了解一下,还有作用域
1.作用域:
1 #!/usr/bin/env python 2 if 1 == 1: #python无块级作用域 3 name = ‘ace‘ 4 print(name) 5 6 for i in range(10): 7 name = i 8 print(name) 9 10 11 def func(): #python以函数作为作用域 12 name = ‘mmm‘ 13 func() 14 print(name) 15 16 li = [lambda :x for x in range(100)] 17 r = li[0]() 18 print(r)
1 C:\Users\Administrator\AppData\Local\Programs\Python\Python35\python.exe C:/Users/Administrator/PycharmProjects/ACE/study10/s1.py 2 ace 3 9 4 9 5 99 6 7 Process finished with exit code 0
2.socket源码结构:我画图实在是惨不忍睹,直接复制别人的吧....武sir的,弄大点,眼神不好使....这一段全是复制的了,很明显不是我写博客的中二风格(http://www.cnblogs.com/wupeiqi/articles/5040823.html)
内部调用流程为:
- 启动服务端程序
- 执行 TCPServer.__init__ 方法,创建服务端Socket对象并绑定 IP 和 端口
- 执行 BaseServer.__init__ 方法,将自定义的继承自SocketServer.BaseRequestHandler 的类 MyRequestHandle赋值给self.RequestHandlerClass
- 执行 BaseServer.server_forever 方法,While 循环一直监听是否有客户端请求到达 ...
- 当客户端连接到达服务器
- 执行 ThreadingMixIn.process_request 方法,创建一个 “线程” 用来处理请求
- 执行 ThreadingMixIn.process_request_thread 方法
- 执行 BaseServer.finish_request 方法,执行 self.RequestHandlerClass() 即:执行 自定义 MyRequestHandler 的构造方法(自动调用基类BaseRequestHandler的构造方法,在该构造方法中又会调用 MyRequestHandler的handle方法)
ps:需要注意的就是pycharm不是万能的....
3.进程线程,下篇跟协程一起再写吧,不然乱了
4.python2.7的继承关系
默认一条道走到黑,如下图
但是当继承object类后就会与3.5一个风格,3.5的所有类已经默认全部继承了object类,唯一的区别,我没2.7的版本,代码不写了,but
以上是关于python第十天的主要内容,如果未能解决你的问题,请参考以下文章