7.1 如何派生内置不可变类型并修改实例化行为
object.__new__(cls[, ...])
__new_()是在对象的实例化中被调用的第一个方法, 是一个静态方法,不需要显式地声明。它会将类作为第一个参数,其余参数传递给对象构造器表达式,返回值为新对象实例 。
示例:派生元祖类,定义一个元素仅为 int 类型的新元组。
#在 __new_()中对数据进行过滤
>>> class IntTuple(tuple):
def __new__(cls,iterable):
g = (i for i in iterable if isinstance(i,int))
return super().__new__(cls,g)
def __init__(self,iterable):
super().__init__()
>>> l
[1, 2, 'gyf', 45]
>>> a = IntTuple(l)
>>> a
(1, 2, 45)
7.2 如何为创建大量实例节省内存
来源:CSDN
作者:guoyunfei2018
链接:https://blog.csdn.net/qq_42105144/article/details/103652928