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

时间: 2024-08-02 11:00:51

python第十天的相关文章

python进阶十_正则表达式(一)

最近状态一直不太好,至于原因,怎么说呢,不好说,总之就是纠结中覆盖着纠结,心思完全不在点上,希望可以借助Python的学习以及博客的撰写来调整回来,有的时候回头想一想,如果真的是我自己的问题呢,以前我经常跟别人说,千万不要怀疑自己,因为很清楚一旦连自己都变的不可信,那这个世界就太疯狂了,当一遍一遍的问我,现在连我自己都快怀疑自己了,我一遍一遍的说服别人,想不到现在竟然需要自己去说服自己,何其的悲哀~ 一.正则表达式基础 1.基本概念 正则表达式是计算机科学的一个概念.正则表达式使用单个字符串来描

初学 Python(十四)——生成器

初学 Python(十四)--生成器 初学 Python,主要整理一些学习到的知识点,这次是生成器. # -*- coding:utf-8 -*- ''''' 生成式的作用: 减少内存占有,不用一次性 创建list中所有的元素,而 是在需要的时候创建 ''' #创建generator有2种方式 #第一种将列表表达式中的[]改为()即可 g = (x*x for x in range(10)) print g for n in g: print n #第二种,关键字yield def fab(ma

初学 Python(十二)——高阶函数

初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 称为高阶函数 ''' #函数作参 def f(x): return x*x #map函数为内置函数,意思为将第二个参数的list作用到f函数中 #最后的结果为一个list print map(f,[1,2,3,4,5]) #reduce函数为内置函数,意思将第二参数的序列作用到add函数值 #将结

Python进阶(十)----规范化格式目录, time模块, datatime模块,random模块,collection模块(python额外数据类型)

Python进阶(十)----规范化格式目录, time模块, datatime模块,random模块,collection模块(python额外数据类型) 一丶规范化格式目录 六个目录: #### 对某某项目进行一个标准化的开发,进行规范化. #bin : 启动项目程序的主入口 #conf : 项目的配置文件 #core : 主要逻辑(业务逻辑) #db : 存放数据() #lib : 辅助文件(存放公共的一些方法) #README : 项目文档说明 ? 二丶time模块(时间模块) 时间的三

Python进阶(十二)----re模块

Python进阶(十二)----re模块 一丶re模块 ? re模块是python将正则表达式封装之后的一个模块.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行. #正则表达式: 从一串字符中,找出你想要的字符串. import re ### 单个元字符的匹配 # \W 除了数字 ,字母,中文, 下划线 print(re.findall('\W','dsadas1231 +1-+2*/,.')) # \w 匹配中文,数字,字母,下划线 print(re.findall('\w

Python进阶(十六)----面向对象之~封装,多态,鸭子模型,super原理(单继承原理,多继承原理)

Python进阶(十六)----面向对象之~封装,多态,鸭子模型,super原理(单继承原理,多继承原理) 一丶封装 , 多态 封装: ? ? ? ? ? ?将一些东西封装到一个地方,你还可以取出来 ? ? ? ? ? ?类设置静态属性, 设置一些方法 或者 对象, 对象可以在其对象封装一些属性 多态: ? ? ? ? ? ?python默认支持多态, 多态指的是一种事务具有多种形态 ? ? ? ? ? ?1.多态可以增加代码的灵活度: ? ? ? ? ? ?2.以继承和重写父类方法为前提: ?

Python第十六课(模块3)

Python第十六课(模块3)    >>>思维导图>>>中二青年 模块与包 模块 """ 三种来源 1.内置的 2.第三方的 3.自定义的 四种表示形式 1.py文件(******) 2.共享库 3.文件夹(一系列模块的结合体)(******) 4.C++编译的连接到python内置的 """ 导入模块 """ 先产生一个执行文件的名称空间 1.创建模块文件的名称空间 2.执行模

关于python的十一道练习

关于python的十一道练习 1.编写程序,输入一个自然数字符串,然后输出各位数字之和.例如,输入字符串1234,输出10. 1 def sums1(): #第一题 2 strs=input('请输入一个自然数字符串:') 3 num=0 4 for i in range(0,len(strs)): 5 num=num+int(strs[i:i+1]) 6 print('该字符串各位数字之和为:',num) 2.编写程序,输入一个字符串,输出翻转(首尾交替)后的字符串.例如,输入字符串12345

python第十五天

python第十五天 今日内容 常用模块的介绍: time,datetime os,sys hashlib,json,pickle,collections time:和时间相关 封装了获取时间戳和字符串形式的时间的一些方法. time.time():获取时间戳 time.gmtime([seconds]):获取格式化时间对象:是九个字段组成的 time.localtime([seconds]):获取格式化时间对象:是九个字段组成的 time.mktime(t):时间对象 -> 时间戳 time.