刻意练习Python基础 ——day 14:类与对象(下)

mac2026-05-09  1

17天 —— Python基础刻意练习

Day 01——Task01:变量、运算符与数据类型 Day 02——Task02:条件与循环 Day 03——Task03:列表与元组(上) Day 04——Task03:列表与元组(下) Day 05——Task04:字符串与序列 Day 06——Task05:函数与Lambda表达式(上) Day 07——Task05:函数与Lambda表达式(下) Day 08——Task06:字典与集合 Day 09——Task07:文件与文件系统(上) Day 10——Task07:文件与文件系统(下) Day 11——Task08:异常处理 Day 12——Task09:else 与 with 语句 Day 13——Task10:类与对象(上) Day 14——Task10:类与对象(下) Day 15——Task11:魔法方法(上) Day 16——Task11:魔法方法(下) Day 17——Task12:模块     


类与对象

文章目录

补充:子类继承父类构造函数说明 情况一:子类需要自动调用父类的方法 情况二:子类不需要自动调用父类的方法 情况三:子类重写`__init__`方法又需要调用父类的方法 参考资料

补充:子类继承父类构造函数说明

 情况一:子类需要自动调用父类的方法

  子类不重写 __init__方法,实例化子类后,会自动调用父类的 __init__的方法。

class Father(object): def __init__(self, name): self.name = name print ("name: {}".format(self.name)) def getName(self): return 'Father:' + self.name class Son(Father): def getName(self): return 'Son:' + self.name if __name__ == '__main__': son = Son('MiveVax') print (son.getName()) # name: MiveVax # Son:MiveVax

 情况二:子类不需要自动调用父类的方法

  如果子类重写__init__方法,实例化子类后,将不会自动调用父类的__init__的方法。

class Father(object): def __init__(self, name): self.name = name print ("name: {}".format(self.name)) def getName(self): return 'Father:' + self.name class Son(Father): def __init__(self, name): print("hi") self.name = name def getName(self): return 'Son:' + self.name if __name__ == '__main__': son=Son('MiveVax') print (son.getName()) # hi # Son:MiveVax

 情况三:子类重写__init__方法又需要调用父类的方法

  如果重写了__init__ 时,要继承父类的构造方法,可以使用 super 关键字:super(子类,self).__init__(参数1,参数2,....)   还有一种经典写法:父类名称.__init__(self,参数1,参数2,...)

class Father(object): def __init__(self, name): self.name = name print ("name: {}".format(self.name)) def getName(self): return 'Father:' + self.name class Son(Father): def __init__(self, name): super(Son, self).__init__(name) print("hi") self.name = name def getName(self): return 'Son:' + self.name if __name__ == '__main__': son=Son('MiveVax') print (son.getName()) # name: MiveVax # hi # Son:MiveVax

参考资料

https://www.runoob.com/python3/python3-class.html
最新回复(0)