python
甜瓜瓜哥
这个作者很懒,什么都没留下…
展开
-
如何通过自动化的方式提取py文件中的字段
可以使用Python中的一些库来解析一个.py文件并提取其中的字段。具体来说,你可以使用ast模块来分析Python源代码,并使用适当的规则来提取你需要的字段。原创 2023-11-04 13:31:07 · 101 阅读 · 0 评论 -
不使用中间变量交换两个变量的值
a = a ^ b:最后一步将 a 更新为原始 a 和新的 b(原始 a 和 b 的异或结果)的异或结果。这将得到原始 b 的值,同时 a 中存储的是原始 a 和 b 的异或结果。b = a ^ b:这一步将 b 更新为新的 a(原始 a 和 b 的异或结果)与原始 b 的异或结果。a = a ^ b:这一步将 a 更新为 a 和 b 的异或结果。因为异或运算满足交换律和结合律,所以此时的 a 存储的是原始 a 和 b 的异或结果。经过这三步操作,a 和 b 的值会互相交换,而且不需要借助中间变量。原创 2023-11-01 21:17:49 · 120 阅读 · 0 评论 -
Python中is和==的区别
python中is比较的是对象的地址,==比较的是对象的内容。原创 2023-11-01 21:14:35 · 31 阅读 · 0 评论 -
Python中为什么没有函数重载
但Python中函数的参数可以有默认值,可以使用关键字参数和可变参数,因此虽然没有函数重载,也可以让一个函数根据调用者传入的参数产生不同的行为。Python是动态类型语言,函数的参数没有类型约束,也就无法根据参数类型来区分重载方法。原创 2023-11-01 21:13:27 · 127 阅读 · 0 评论 -
Python迭代器和生成器
并保存当前运行的信息,返回yield的值,等待被重新唤醒后从当前位置继续运行。:生成器是生成元素的,迭代器是访问集合元素的一中方式。迭代输出生成器的内容。的对象,从集合的第一个元素开始访问,直到所有元素访问结束。迭代器对象可以用for语句或while语句来遍历。在调用生成器运行的过程中,的函数被称为生成器,它会。原创 2023-11-01 21:12:06 · 32 阅读 · 0 评论 -
Python如何拷贝一个对象
还可以使用copyreg.pickle模块的dumps和loads方法来自定义指定类型对象的拷贝行为。deepcopy可以通过memo字典来保存已经拷贝过的对象,从而避免刚才所说的自引用递归问题。浅拷贝通常只复制对象本身,而深拷贝不仅会复制对象,还会递归的复制对象所关联的对象。copy.copy()浅拷贝,copy.deepcopy()深拷贝。deepcopy函数的本质就是对象的一次序列化和一次反回序列化。原创 2023-11-01 21:06:10 · 229 阅读 · 0 评论 -
Python是如何实现内存管理的
CPython解释器的内存管理有三个关键点:引用计数、标记清除、分代收集。自动内存管理减轻了程序员的工作负担,也在一定程度上解决了内存泄露问题。python的内存管理由。原创 2023-11-01 21:03:38 · 30 阅读 · 0 评论 -
Python多线程
GIL会在I/O调用(会调用内建的操作系统C代码)之前被释放,以允许其他线程在这个线程等待I/O的时候运行。我们可以把一些计算密集型任务用C语言编写,然后把.so链接库内容加载到Python中,因为执行C代码,GIL锁会释放,这样一来,就可以做到每个核都跑一个线程的目的。python有GIL(全局解释器锁)的限制,虽然Python解释器可以运行多个线程,但只有一个线程在解释器中运行。当python调用C扩展的时候,可以在C扩展中把GIL释放掉,从而达到使用多线程并行的目的。原创 2023-11-01 21:01:30 · 32 阅读 · 0 评论 -
Python中单引号、双引号和三引号的区别
字符串中有单引号时,用双引号表示字符串,单引号不用加转义字符。三引号允许字符串跨越多行,三引号还可以注释代码。单引号和双引号都表示字符串,没有区别。原创 2023-11-01 20:32:39 · 284 阅读 · 0 评论