本篇将会是本专栏关于python基本语法的最后一个知识点,后期将会谈python,就会介绍使用python专题,例如:做爬虫、有架构的网站。
1. 为什么需要继承
如果没有继承,按照之前的代码定义"狗"的具体类型,如哈士奇,吉娃娃如下:
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’重复
继承是为了解决重复代码。
2. 继承的基本概念
- 基类:“狗”就是基类,它具有通用的属性
- 派生类:“狗”派生出来的“哈士奇”、“吉娃娃”,它们是在基类基础上,添加功能得到
3. python中继承的基础语法
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
4. 总结
- 如果只是简单的使用,可能不会涉及到python中类的概念和方法。
- 但是如果想深入或者做网站框架等,是不可避免会使用到面向对象,倒不是面向对象写程序,而是别的框架通过类的方式暴露给你使用,继承基类写方法,做出网站。语法角度,现在所讲已经满足使用类、继承并开拓自己程序。
至此本栏目python相关介绍暂时告一段落。
5.学习视频地址:继承