Python
文章平均质量分 83
菲洛斯
知其然,知其所以然!
展开
-
Python中有趣的魔术方法二
Python中有趣的魔术方法二近期遇到一个有趣的需求,要求子类的方法不能覆盖父类特定的方法和方法,此功能的实现涉及前作 Python中有趣的魔术方法 中未提及的魔术方法,之前是觉得大部分场景都很难遇到,此次也算复习下基础知识。分析需求从需求的本身来理解,实现时要拆分为方法和属性的检查,此处不理解为什么要拆分的同学对于实例的初始化过程了解不够深入,可以参考下前作 Python中有趣的魔术方法 中关于__new__和 __init__部分了解下,确定好需求,实现起来就方便了,自定义父类的 __init_s原创 2021-08-10 17:13:37 · 105 阅读 · 0 评论 -
with语句上下文管理器
with语句上下文管理器官方定义with 语句用于包装带有使用上下文管理器定义的方法的代码块的执行。 这允许对普通的 try…except…finally 使用模式进行封装以方便地重用。关于 with语句 的详细介绍见 PEP-343 。执行过程with 语句的执行过程如下:The context expression (the expression given in the with_item) is evaluated to obtain a context manager.The con原创 2021-04-27 14:10:33 · 136 阅读 · 0 评论 -
Python中有趣的魔术方法
Python中有趣的魔术方法##由单例引发的思考相信熟悉 python 的开发者,都熟悉以下代码,它实现了 单例,但它为什么可以实现 单例 呢?如果此方法中没有返回值会发生什么呢?可以利用特殊方法实现什么呢?class Singleton: def __new__(cls, *args, **kwargs): if not hasattr(cls, '_instance'): cls._instance = super(Singleton, cls)._原创 2021-04-21 15:41:40 · 174 阅读 · 3 评论