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__的方法。
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__ 时,要继承父类的构造方法,可以使用 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