为什么Python不允许有__new__方法?

问题描述 投票:0回答:1

为什么Python允许类中没有

__new__
方法,而
__init__
是强制的?

例如,如果您想创建“A 类”的实例,只需调用

A()
即可创建一个对象。如果创建实例已经完成了这项工作,那么
__new__
类的意义何在?

编辑: 示例:

class A:
    def __init__(self):
        print("hello world")

A()

将其输入到 python 中将打印“hello world”,作为类

A
的实例,但该类中没有
__new__
方法。

python class object constructor init
1个回答
1
投票
    当创建 A 类的对象时,总是会调用
  1. __new__
    ,如果未定义,则使用
    Object.__new__

  2. __init__
    __new__
    都处理不同的关注点,
    __init__
    关注对象初始状态,而
    __new__
    关注对象如何创建。

因此

__init___
__new__
都很重要,而且它们都有不同的用途。

© www.soinside.com 2019 - 2024. All rights reserved.