【发布时间】:2019-05-16 20:48:31
【问题描述】:
在测试多重继承时,我有以下 Date、Time 和 DateTime 类层次结构
class time:
def __init__(self, time):
self.time = time
def getTime():
return self.time;
class date:
def __init__(self, date):
self.date = date
def getDate():
return self.date
class datetime(time,date):
def __init__(self, input_time, input_date):
time.__init__(self, input_time)
date.__init__(self, input_date)
实例化和检查日期工作正常:
my_datetime = datetime("12PM","Today")
my_datetime.date
'Today'
但是运行 getDate 函数会出现参数错误,我不明白为什么
my_datetime.getDate()
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-17-120ecf58a608> in <module> ----> 1 my_datetime.getDate() TypeError: getDate() takes 0 positional arguments but 1 was given
【问题讨论】:
-
应该是
def getDate(self):,因为当你调用my_datetime.getDate()时,Python内部会传递self。 -
@PatrickHaugh 我以前看过那个,但我没有注意到其中的区别,但我第二次看到它。谢谢!
标签: python-3.x multiple-inheritance