随笔分类 - Python基础
摘要:1. reversed() 2. range(len(a) 1, 1, 1) 3. range(len(a)) + ~操作符 ~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 x 1 4. slice 5. length i 1
阅读全文
摘要:总结 和threading.local()类似。Python3.7新增。 thread.local(): 不同线程,同一个变量保存不同的值。 contextvars: 不同上下文,同一个变量保存不同的值。例如:同一线程,不同的协程或者异步并发的任务(例如asyncio)的情况下同一个变量有不同的值。
阅读全文
摘要:起因经过 今天翻 "collections.abc" 的文档时,我知道list的实例在逻辑上(因为duck typing 鸭子类型)是Container和不能hash的(因为list可变),就试下面的代码是否能行: 我就产生疑惑,问题1来了:list是继承于object, 而collections.
阅读全文
摘要:例如正则表达式a(?:b),匹配后没有包含'b'的分组 例如正则表达式:a(b),匹配后有包含'b'的分组 参考 https://stackoverflow.com/a/10804846/5955399 https://docs.python.org/3/library/re.html regula
阅读全文
摘要:all() any() filter() map() pow() zip() bit_length() bisect.bisect_left() itertools.chain() itertools.from_iterable() itertools.combinations() itertool
阅读全文
摘要:说明 看文档发现一个有趣的应用(利用zip函数) 例如[1, 2, 3, 4] [(1, 2), (3, 4)],拆分成长度为2的数据块 Code 原理: zip( iterables) https://docs.python.org/3/library/functions.html zip
阅读全文
摘要:```
# pattern支持字符或者字符串
def my_split(string, pattern): ret = [] len_pattern = len(pattern) while True: index = string.find(pattern) if index == -1: ret.append(st...
阅读全文
摘要:To be a Pythonista 1. assert 例子1 如果关闭assert, 很危险 def delete_product(prod_id, user): assert user.is_admin(), 'Must be admin' assert store.has_product(p
阅读全文
摘要:``` from functools import wraps def cache(func): cache = {} @wraps(func) def wrap( args): if args not in cache: cache[args] = func( args) return cache
阅读全文
摘要:解决方案 1. pycallgraph(感觉直接用pycallgraph grahviz命令生成的图并不是我想要的) 2. 如何去阅读并学习一些优秀的开源框架的源码? mailto1587的回答 知乎 https://www.zhihu.com/question/26766601/answer/33
阅读全文
摘要:法一. pyreverse https://www.logilab.org/blogentry/6883 缺点是只限于这个pack包中的类(超出这个包里面的类就不在图中, 例如包中的某个类的父类是另一个包的一个类, 那么这个父类不在生成的UML图中). 貌似 A S这些选项没作用. 法二. pych
阅读全文
摘要:定时功能通过module time + 死循环实现,因为time.sleep()会自动阻塞 get_ip_pool.py read_ip_pool.py
阅读全文
摘要:例如一个IP代理池,这是个字符串,有多行 120.236.137.65:8060 193.112.208.216:8118 121.8.98.198:80 121.8.98.197:80 121.8.98.196:80 120.236.168.19:8060 123.207.6.117:80
阅读全文
摘要:Form里面嵌套了一个Meta类 Django是怎么处理的? 在models.py中 看这个源码得知,用反射获取class Meta,然后用type()去创建新的表单类。type()用了两次,第一次用来创建base form, 第二次用base form来创建带有新增属性的form。 为什么type
阅读全文
摘要:1.Python中的lambda函数只允许单个表达式,没有流程控制、迭代、异常处理等。 2.lambda表达式中的变量是运行时绑定的 3.想让某个匿名函数在定义时就捕获到值,可以将那个参数值定义成默认参数
阅读全文
摘要:例如在读文件里面的文本时,每一行默认后面有\n或者有\r,所以strip用于去除首尾空格或者回车符。
阅读全文
摘要:生成器本质 生成器是一个可迭代对象,自动实现了迭代器协议。 怎样生成生成器? 两种方法 1. 函数里return改为yield 2. 利用生成器表达式,将列表表达式的[]改为()即可 好处 节省内存 题外话 参考: https://www.cnblogs.com/allen2333/p/937385
阅读全文
摘要:参考 1. https://foofish.net/how for works in python.html for循环可以迭代一个可迭代(iterable)的对象 原理 1. 生成这个可迭代对象(实现了\__iter__方法的就叫可迭代对象)的迭代器(iter(xx))。 2. 用迭代器协议(实现
阅读全文
摘要:1. object.__getattribute__(self, name) 2. 类中的数据描述符 3. object.__dict__.get(name) 自身属性字典 4. object.__class__.__dict__.get(name) 类属性字典 / 非数据描述符 5. object
阅读全文

浙公网安备 33010602011771号