本篇将会是本专栏关于python基本语法的最后一个知识点,后期将会谈python,就会介绍使用python专题,例如:做爬虫、有架构的网站。
如果没有继承,按照之前的代码定义"狗"的具体类型,如哈士奇,吉娃娃如下:
class Dog:
def __init__(self,arg_name,arg_age):
self.name = arg_name
self.age = arg_age
def introduce(self):
print("我是",self.name,"年龄",self.age)
def __repr__(self):
return self.name + ":" + str(self.age)
class 哈士奇: #可以以汉字进行定义
def __init__(self,arg_name,arg_age,arg_iq):
self.name = arg_name
self.age = arg_age
self.age = arg_iq
class 吉娃娃:
def __init__(self,arg_name,arg_age,arg_beauty):
self.name = arg_name
self.age = arg_age
self.beauty = arg_beauty
if __name__ == "__main__":
dog1 = Dog("旺财",5)
dog2 = Dog("小强",6)
dog1.introduce()
dog2.introduce()
可以看到定义的部分会与’dog’重复
继承是为了解决重复代码。
python通过以下语法,实现继承
class 派生类(基类)
结合__init__
,super()
我们可以很方便地让派生类拥有基类的熟悉。
super()
方法,会返回基类对象。对上面的代码,按照继承的思想重构如下:
class Dog:
def __init__(self,arg_name,arg_age):
self.name = arg_name
self.age = arg_age
def introduce(self):
print("我是",self.name,"年龄",self.age)
def __repr__(self):
return self.name + ":" + str(self.age)
class 哈士奇(Dog):
def __init__(self,arg_name,arg_age,arg_iq):
super().__init__(arg_name,arg_age)
self.iq = arg_iq
class 吉娃娃(Dog):
def __init__(self,arg_name,arg_age,arg_beauty):
super().__init__(arg_name,arg_age)
self.beauty = arg_beauty
if __name__ == "__main__":
dog1 = 哈士奇("旺财",5,50)
dog2 = 吉娃娃("小强",6,88)
print(dog1.name,dog1.age,dog1.iq)
print(dog2.name,dog2.age,dog2.beauty)
运行结果:
旺财 5 50
小强 6 88
至此本栏目python相关介绍暂时告一段落。
5.学习视频地址:继承