关于python中类的继承及self
如下,如果调用student类,则可以正常运行,但是如果去掉consumer.__init__(self, fee)中的self,将其改成consumer.__init__(fee),则不能正常调用,会显示consumer中缺少参数。但是,person类的调用缺没问题。
如下,我定义三个类:
class person(object):
def __init__(self, name, sex='U'):
self.name = name
self.sex = sex
print('the one is %s' % self.name)
class consumer(object):
def __init__(self, fee):
self.fee = fee
print('the one\'s consumer is %d' % fee)
class student(person, consumer):
def __init__(self, name, score, fee, sex):
super(student, self).__init__(name, sex)
consumer.__init__(self, fee)
----------------------------分割一下----------------------------------------
补充一下描述好了,之前没太说清楚。这在python3中是有效的,然后我提这个问题的主要目的是要搞清楚为什么会出现在super中有效而下面一个consumer.__init__中却无效的问题?有没有大神给解释下?
并没有。一样有问题。
super
中是一个bound method
,而consumer.__init__
是unbound method
。关于
bound
和unbound
: https://stackoverflow.com/que...上面,这个答案是最好的: