摘要: server.py client.py 阅读全文
posted @ 2018-08-15 00:58 四十不惑的编程之路 阅读(607) 评论(0) 推荐(0) 编辑
摘要: server.py client.py 阅读全文
posted @ 2018-08-14 23:07 四十不惑的编程之路 阅读(136) 评论(0) 推荐(0) 编辑
摘要: # socket编程 # OSI五层模型 # 1、物理层 通过光纤,双绞线,无线电波等将不同的计算机进行连接,并传递电信号(010101) # 2、数据链路层 对电信号进行分组,使其有意义,遵循的是以太网协议(ethernet),用于标识不同主机的Mac地址 # 以太网协议规定数据包必须分成两部分,一部分是报头(源Mac,目标Mac),一个是数据部分 。基于arp协议的广播方式进行通信 (局域网... 阅读全文
posted @ 2018-08-14 21:04 四十不惑的编程之路 阅读(118) 评论(0) 推荐(0) 编辑
摘要: # 异常处理 # 常见异常 # SyntaxError 语法错误 # AttributeError 试图访问一个对象没有的属性 # IOError 输入/输出异常;基本上是无法打开文件 # ImportError 无法引入模块或包;基本上是路径问题或名称错误 # IndentationError 语法错误的子类;代码没有正确对齐 # IndexError 下标索引超出序列边界 # KeyErro... 阅读全文
posted @ 2018-08-14 19:55 四十不惑的编程之路 阅读(90) 评论(0) 推荐(0) 编辑
摘要: # 元类(metaclass) type 就是产生类的类,是类的模板 class Foo: pass f1 = Foo() print(type(f1)) # print(type(Foo)) # # f1对象是Foo类的一个实例,Foo类是type类的一个实例 # 第二种方式定义类 def __init__(self, name, age): self.na... 阅读全文
posted @ 2018-08-14 16:47 四十不惑的编程之路 阅读(180) 评论(0) 推荐(0) 编辑
摘要: # 修改与删除@property封装的数据属性 # 原始通过@property实现的功能:将类中定义的函数属性,通过装饰器@property将其封闭成数据属性,这时是不能删除和修改这个数据属性的 class Room: def __init__(self, name, width, length): self.name = name self.widt... 阅读全文
posted @ 2018-08-14 00:10 四十不惑的编程之路 阅读(394) 评论(0) 推荐(0) 编辑
摘要: # 通过描述符自定制@property的功能 # 原始通过@property实现的功能:将类中定义的函数属性,通过装饰器@property将其封闭成数据属性 class Room: def __init__(self, name, width, length): self.name = name self.width = width s... 阅读全文
posted @ 2018-08-13 23:49 四十不惑的编程之路 阅读(144) 评论(0) 推荐(0) 编辑
摘要: # 类的装饰器 # 对不同的类使用装饰器加上不同的类属性 def typed(**kwargs): def deco(obj): for k, v in kwargs.items(): setattr(obj, k, v) return obj return deco @typed(x=1, y=2, z=3) # ... 阅读全文
posted @ 2018-08-13 22:48 四十不惑的编程之路 阅读(1246) 评论(0) 推荐(0) 编辑
摘要: # __enter__和__exit__上下文管理协议 f = open('test.txt', 'r', encoding='utf-8') f.read() f.close() # 等同于下面的with...as...写法,实际上就是实现了上下文管理协议,无需再关闭f对象 with open('test.txt', 'r', encoding='utf-8') as f: f.re... 阅读全文
posted @ 2018-08-13 21:39 四十不惑的编程之路 阅读(112) 评论(0) 推荐(0) 编辑
摘要: # 描述符 __get__ __set__ delete__ # 描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),__set__(),__delete()中的一个,这也称为描述符协议 # __get__() 调用一个属性时触发 # __set__() 为一个属性赋值时触发 # __delete__() 使用del删除属性时触发 # 描述符的作用是用来代理另外一个类的属性(... 阅读全文
posted @ 2018-08-13 21:18 四十不惑的编程之路 阅读(178) 评论(0) 推荐(0) 编辑