显式__init__ python

时间:2018-08-15 06:50:17

标签: python-3.x constructor

class A(object):
    __init__ = None

def A__init__(self, value):
    self.value = value

A.__init__ = A__init__

我是python的新手,所以我想问一下上面和下面的构造函数之间的区别。

class A(object):
    def __init__(self, value):
        self.value = value

1 个答案:

答案 0 :(得分:0)

如评论中所述,就用法而言,没有明显的区别。但是请注意,命名确实发生了更改,

>>>print(A.__init__.__name__)

通常情况下输出__init__,但是如果您将功能绑定为A__init__的{​​{1}}方法,则输出__init__

除此之外,如果A曾经进入类层次结构,您也不能依靠A来为您确定MRO,并且将不得不使用{{ 1}}。猴子补丁super()有点奇怪,嗯。