随笔分类 - 

摘要:一、反射:使用字符串来访问类中的方法或者变量 二、3个方法 getattr():获取属性或者方法的内存地址 hasattr():判断是否有该属性或者方法 setattr():设置属性或者方法 三、实例: class A: def __init__(self, a, b): self.a = a se 阅读全文
posted @ 2021-06-08 09:28 只管去做-王炸 阅读(41) 评论(0) 推荐(0)
摘要:一、引用计数器为主,标记清除和分代回收为辅,加上缓存机制 二、通过调用析构函数进行无引用对象的内存回收 三、析构函数实例: class A: def __del__(self): print(" in __del__")a = A()b = A() 阅读全文
posted @ 2021-06-07 14:47 只管去做-王炸 阅读(88) 评论(0) 推荐(0)
摘要:一、int、string、list这些基本类型的大小比较都是基于如下方法实现:__lt__;__gt__;__le__;__ge__;__eq__;__nq__,同理,类要实现比较功能需要实现这些方法 二、使用装饰器functools.total_ordering可以简化上诉实现的方法 三、实例: 阅读全文
posted @ 2021-06-04 17:19 只管去做-王炸 阅读(63) 评论(0) 推荐(0)
摘要:一、提高代码重用率,类似于装饰器作用,减少重复代码,提高代码可读性 二、实现上下文管理的两种方式:①类中实现__enter__和__exit__方法;②使用装饰器@contextlib.contextmanager 三、上下文管理的流程:先调用____enter__方法,再调用自身的方法,最后调用_ 阅读全文
posted @ 2021-06-04 11:31 只管去做-王炸 阅读(153) 评论(0) 推荐(0)
摘要:一、类在实例化的过程中会消耗较多的内存,在类中定义__slots__属性,指定该类只能拥有的属性,以减小内存消耗 二、动态绑定属性实例: class A: def __init__(self, name, age, level): self.name = name self.age = age se 阅读全文
posted @ 2021-06-04 10:20 只管去做-王炸 阅读(58) 评论(0) 推荐(0)
摘要:一、先调用__new__方法创建空的对象 二、再调用__init__方法进行对象进行实例化 三、有特殊类会使用__new__方法进行对象实例化,例如:tuple 四、实例: class A: def __new__(cls, *args, **kwargs): return super().__ne 阅读全文
posted @ 2021-06-04 09:14 只管去做-王炸 阅读(139) 评论(0) 推荐(0)