注意py2 和 py3 的区别: 官方代码环境为 python2.x 使用 python3.x 需要把 Protocol.transport.write() 使用 encode()编码为 b'xxx'收到信息之后使用 decode() 转换为 str 概览 Twisted 是一个非常灵活的框架,可以用它写出非常强大的客户端。灵活的代价就是需要写多层客户端代码,本文档涵盖了使用 Twisted 创建TCP、SSL、Unix socket 客户端的方法, UDP 客户端将在另外一篇文档中讲解。…

字符串格式化 % 方法 1、字符宽度和精度 '%x.yf' d/i/o/u/x/X/e/E/f/F/g/G/C/r(repr 转换任何对象)/s(str) 2、符号、对齐、填充 +标出数字正负号 -左对齐数值 ""正数前加上空格 0用0填充空位 .format 方法…

迭代器 & 生成器 # look https://www.zhihu.com/question/20829330 # 生成器函数: 使用yield语句而不是return语句返回结果。 # yield语句一次返回一个结果,在每个结果中间,挂起函数的状态,以便下次重它离开的地方继续执行 def gensquares(N): for i in range(N): yield i ** 2 for item in gensquares(5): print(item) print(…

@staticmethod & @classmethod 一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法,而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用。 为了编程的时候命名空间整洁有利于组织代码。 @staticmethod 把函数写进 class 体内,并使用@staticmethod 标记, 不需要传入代表自身对象的 self 参数和代表自身类的 cls 参数,可以理解为除了调用方式与类外的函数不一样外,使用方法与独立于类的函数一样, 不依赖类和对象。 @classmethod依赖于类本身,可以调用类的属性、方法, 可以实例化对象并进行操作,避免硬编码 示例代码:…