掌握Python的X篇_39_继承

本篇将会是本专栏关于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.学习视频地址:继承

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十月旧城

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值