掌握Python的X篇_39_继承

本篇将会是本专栏关于python基本语法的最后一个知识点,后期将会谈python,就会介绍使用python专题,例如:做爬虫、有架构的网站。

文章目录

  • 1. 为什么需要继承
  • 2. 继承的基本概念
  • 3. python中继承的基础语法
  • 4. 总结

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.学习视频地址:继承

你可能感兴趣的:(#,掌握Python的X篇,python,开发语言)