首页 > 其他 > 详细

类对象初始化过程

时间:2021-06-04 12:29:31      阅读:15      评论:0      收藏:0      [点我收藏+]

一、先调用__new__方法创建空的对象

二、再调用__init__方法进行对象进行实例化

三、有特殊类会使用__new__方法进行对象实例化,例如:tuple

四、实例: 

class A:
def __new__(cls, *args, **kwargs):
return super().__new__(cls, *args, **kwargs)

def __init__(self, *args, **kwargs):
self.args = args
self.kwargs = kwargs

五、tuple的子类,自定义实现实例化方法:

tuple1 = (1, 2, 3, ‘a,b,c‘, [1, 2, 3], 0)


class IntTuple(tuple):
def __new__(cls, *args):
t, = args
f = (x for x in t if isinstance(x, int) and x > 0)
return super().__new__(cls, f)


res = IntTuple(tuple1)
print(res)

类对象初始化过程

原文:https://www.cnblogs.com/inflame/p/14848149.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!