摘要: 小历史 Guido van Rossum(吉多·范罗苏姆)创建python时就只考虑到单核CPU,解决多线程之间数据完整性和状态同步的最简单方法自然就是加锁, 于是有了GIL这把超级大锁。因为cpython解析只允许拥有GIL全局解析器锁才能运行程序,这样就保证了保证同一个时刻只允许一个线程可以使用 阅读全文
posted @ 2021-09-09 10:55 注入灵魂 阅读(180) 评论(0) 推荐(0)
摘要: with语法 with语句实质上是上下文管理,是try...finally...的简化 1 try: 2 f = open('/path/to/file', 'r') 3 f.read() 4 finally: 5 if f: 6 f.close() 7 8 9 ​ 10 with open('/p 阅读全文
posted @ 2021-09-09 08:27 注入灵魂 阅读(176) 评论(0) 推荐(0)
摘要: 在运行时替换方法、属性等,动态属性替换 在不修改第三方代码的情况下增加原来不支持的功能 在运行时为内存中的对象增加patch而不是在磁盘的源代码中增加 主要用途在于源码不宜直接修改,而添加补充功能 例子:python自带的json包不支持自定义对象转json串,在python中用json.dumps 阅读全文
posted @ 2021-09-09 07:57 注入灵魂 阅读(150) 评论(0) 推荐(0)
摘要: 内存的管理:分配(malloc)+回收(free) 作用:控制python内存,对python内存进行回收 python中一切皆对象,python的存储就是分配内存空间去存储对象 整数和短小的字符(基本就是一个单词)使用的是缓存机制,以便快速重复使用 使用is检验是否为同一个对象 三个方面:引用计数 阅读全文
posted @ 2021-09-09 07:37 注入灵魂 阅读(897) 评论(0) 推荐(0)
摘要: 装饰器 使用目的:在不修改函数源代码的基础上,添加额外的功能,类似打补丁 了解装饰器之前先要清除闭包的概念 闭包 引用了外部自由变量的函数 自由变量:不在当前函数定义的变量 特性:自由变量会和闭包函数同时存在 即使程序离开发布作用域,如果闭包仍然可见,绑定变量不会销毁 每次运行外部函数都会重新创建闭 阅读全文
posted @ 2021-09-09 07:32 注入灵魂 阅读(87) 评论(0) 推荐(0)