class Person(object):
def __init__(self, name):
"""Create a person"""
self.name = name
lastBlank = name.rindex(" ")
self.lastName = name[lastBlank + 1:]
class MITPerson(Person):
Id = 0 # ID Number
def __init__(self, name):
Person.__init__(self, name)
<...code...>
上例中,由于MITPerson
继承了Person
的属性,那么在其初始化过程中的Person.__init__(self, name)
语句是否可以省略?如果不可省略,如何调试判断?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
python 只会重写父类的函数,而非继承。因此需显式调用父类方法。
另不建议这种写法,应改成:
不可以。属性的初始化是在
Person.__init__
中进行的,如果省略了,就不会“继承了Person
的属性”,例如不会执行self.name = name
,也就是MITPerson
的实例中不存在name
属性。