Python HotFix 热更新
以下为个人学习笔记整理 # HotFix 热更新 # 概念: 热更新是指在 Python 程序运行过程中,修改代码中的部分片段,并能够不需要重新启动程序,便能够在运行程序中生效。 热更新一般都是基于 module 来进行的,所以热更新本质就是更新 module 为了能够保证热更之前创建的绝大多数对象是能够正常工作的,一般会尽量避免对对象直接进行替换,能修改的尽量不替换。 # 介绍: 一个 module 里面包含的内容大致可以分为以下几种: class :类 function :方法 global object...
more...基于 watchdog 实现自动化更新
以下为个人学习笔记整理 # 基于 watchdog 实现自动化更新 # 背景: 每次修改 Python 后为了不重启服务器进行调试,需要手动执行一个指令来指定需要热更的文件,有时候会比较麻烦。为此写了一个自动识别文件修改的工具,可以实时监听文件的修改并自动执行热更操作。 # 原理: 基于 watchdog 监听某个文件下的文件 发现文件修改后触发相应的 Event。 根据 Event 内容生成热更指令,写入热更文件。 热更程序定时读取文件,执行热更指令,并清空文件。 # 核心代码: # -*- coding: utf8 -*-# DATE: 2020/10/16 Friimport...
more...编写Python的C扩展
以下为个人学习笔记整理 # 编写 Python 的 C 扩展 # 构建编译基础环境 启动 visual studio installer 安装相关插件和依赖库 # 编写 C 扩展代码 简单的 C 扩展大致结构图: 定义函数: PyMethodDef 定义模块: PyModuleDef 定义初始化模块函数:PyInit_module # 定义函数 函数名: 模块名_函数名 参数类型 ml_flags : METH_VARARGS :只包含元组参数 def func(self, *args) METH_VARARGS | METH_KEYWORDS :包含元组及字典参数 def...
more...python2源码剖析
以下为个人学习笔记整理 # python 源码阅读 # 数据类型分析 # PyIntObject——python 中的 int 类型 python 计算两个整数 () 出现溢出后会转换成 long 类型(无限大整数)。 python 整数缓存 [-5~256] 的整数。 提供多个缓存块,每个能够存放 (100/8) 数量的 int 类型。 控制这些块的结构是一个单向链表(指向每个块中第一个违背使用的内存块)。 申请新的缓存块采用头插法。 空闲地址指针 (free_list) 会串起所有缓存块的地址空间 (单链表)。 对象释放后会以头插的形式再次加入到...
more...shell基本语法及linux基础
以下为个人学习笔记整理 # Linux 学习笔记 # Linux 目录结构 /bin : binary,存放二进制文件,普通命令 /sbin :system binary,存放系统二进制文件,需要系统权限 /user/bin :用户安装的应用程序 /user/sbin :超管安装的应用程序 # Linux 基本指令 pwd :查看路径 ls :查看目录下文件 clear :清屏 rm filename :删除文件 -d 可以删除文件夹 mv file/dir dir :移动 [文件 / 文件夹] 到某个目录下 cp file/dir file/dir :复制 文件/文件夹 到...
more...python内建函数
以下为个人学习笔记整理 # python 内建函数 # build-in function abs:求绝对值,复数返回大小 all:可迭代对象内是否存在空元素 any:可迭代对象内是否存在非空元素 ascii:转为 ascii 编码 bin:转为二进制 bool:转为 bool 类型 breakpoint:打上断点,通过输入 n 键(Next)进行调试 bytearray:字节数组(可变) bytearray 和 bytes 不一样的地方在于,bytearray 是可变的。 和字符串一样,字节类型也是不可变序列,而字节数组是可变版本的字节,它们的关系就相当于 list...
more...python2和python3差异
以下为个人学习笔记整理 # python2 对比 python3 差异 print 函数调整 更多的地方返回值改为 「View」「Iteators」而不再是「List」 比较功能的修改 整数部分的修改 新语法 修改的语法 移除的语法 # print is a Function print 不再是一个关键字,而是作为一个函数被使用。 Old: print "The answer is", 2*2New: print("The answer is", 2*2)# Views And Iterators Instead Of...
more...python2解决异步协程问题
以下为个人学习笔记整理 # yield 的简单使用 def Fuck(): for k, v in {"1": 1, "2": 2, "3": 3, "4": 4}.items(): yield k,vfor k,v in Fuck(): print(k , v)# 简单异步协程(同步情况下会报错) # -*- coding:utf-8 -*-import timeimport threadingg_func = []def...
more...