【发布时间】:2015-07-23 14:00:04
【问题描述】:
我在一个类中有两个构造函数,但是当我调用其中一个(一个有一个参数的 - 只有自己的 - 而不是一个有 4 个参数的)时,它会导致错误,说它期望的参数比1 个。
类是如下方式:
class Message:
def __init__(self):
self.data = None
def __init__(self, type, length, data):
self.type = type
self.length = length
self.data = data
和对它的调用(我也得到错误的地方):
msg = Message()
问题可能出在哪里?难道不能和C++相提并论吗?如果没有,我怎样才能以另一种方式获得相同的结果?
【问题讨论】:
-
Python 不允许这种行为 - 第二个
__init__完全替换第一个。 “难道它不能与 C++ 相提并论吗?” - 只是你可以说它不像 C++! -
从技术上讲,
__init__不是构造函数,而是初始化程序。它接收一个已经构建的对象作为参数。__new__是构造函数。