python中的__new__方法
python中__new__方法是对象的构造方法:
- 在元类中,__new__方法控制类(元类的实例,本质是对象)的创建;
- 在普通类中,__new__方法控制类对象的创建;
试验代码
class MetaClass(type):
def __new__(cls, name, bases, *attrs):
print('在元类中,__new__方法控制类(元类的实例,本质是对象)的创建')
return super().__new__(cls, name, bases, *attrs)
class Book(metaclass=MetaClass):
def __new__(cls, *args, **kwargs):
print('在普通类中,__new__方法控制类对象的创建')
# return super(Book, cls).__new__(cls, *args, **kwargs) # python2
return super().__new__(cls) # python3
def __init__(self, name):
self.name = name
def __str__(self):
return '《{}》'.format(self.name)
if __name__ == '__main__':
book = Book('python')
print(book)
代码输出
在元类中,__new__方法控制类(元类的实例,本质是对象)的创建
在普通类中,__new__方法控制类对象的创建
《python》
版权声明:本文为u014294083原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。