Python入门基础(7)--析构函数/类的继承/父类的调用/静态方法

本文介绍了Python中的析构函数`__del__`,它在对象销毁时自动调用,常用于资源回收。接着讨论了类的继承,包括单继承和多继承,以及继承的传递性。同时讲解了重写父类方法、调用父类方法的方式。最后,详细阐述了Python的多态特性,强调了多态的前提(继承和重写)、优点,并给出了类属性和实例属性、类方法及静态方法的使用示例。
摘要由CSDN通过智能技术生成

析构方法

相信大家都有这样的经历:我们进入一家商店的时候经常会听到一个喇叭播放说,欢迎光临,当我们出商店的时候也会提醒说欢迎光临,现实中这是通过感应器触发的,但是在程序中我们是如何触发实现呢,这就是我们要介绍的,析构函数

概述

当一个对象被删除或者被销毁时,python解释器也会默认调用一个方法,这个方法为__del__()方法,也称为析构方法

定义

程序执行结束自动调用__del__方法
可以看到输出结果为:

##析构方法肯定是在类的内部
class Animal:
    def __init__(self,name):
        self.name=name
        print('这是构造初始化方法')
        pass
    def __del__(self):
        # 主要的应用就是来操作 对象的释放  一旦释放完毕  对象便不能在使用
        print('当在某个作用域下面 没有被使用【引用】的情况下 解析器会自动的调用此函数 来释放内存空间')
        print('这是析构方法')
        print('%s 这个对象 被彻底清理了 内存空间也释放了'%self.name)
    pass

cat=Animal('小花猫')
# del cat  #手动的去清理删除对象  会指定__del__函数
print(cat.name)
##input('程序等待中.....')#加上这个时后对象就不会被释放,因为还没有被使用
# print('*'*40)
# dog=Animal('柯基小狗')

*当在某个作用域下面 没有被使用【引用】的情况下 解析器会自动的调用此函数 来释放内存空间

就是程序执行完后,这个对象没有用了,就会删除释放空间

*对象被删除时也会自动调用__del__方法,如下代码中我们利用del手动删除dog对象

就是说手动删除时,就会自动调用del方法,本来还没执行的del方法就会被执行

从下面的输出结果中,我们可以看出,当我们调用del dog 这条语句时__del__方法被执行了

*对象一旦被释放便不可以再被使用

总结

  1. 当整个程序脚本执行完毕后会自动调用__del__方法
  2. 当对像被手动销毁时也会自动调用 __del__ 方法
  3. 析构函数一般用于资源回收,利用__del__方法销毁对象回收内存等资源

单继承

在python当中展现面向对象的三大特征:封装,继承和多态

封装:指把内容封装到某个地方,便于后面的使用,

需要:

  1. 把内容封装到某个地方
  2. 从另外一个地方去调用被封装的内容

对于封装来说,其实就是使用初始化构造方法init将内容封装到对象中,然后通过对象或者self间接的获取被封装的内容

继承:和现实生活中的继承是一样的,就是子可以继承父的内容【属性和行为】(爸爸有的儿子都有,相反,儿子有的爸爸不一定有),对于面向对象的继承来说,其实就是将多个类共有的方法提取到父类中,子类仅需继承父类而不必一一去实现,这样可以极大的提高效率,减少代码的重复编写,精简代码的层级结构,便于拓展

概述

在现实生活中,继承一般指的是子女继承父辈的财产。在面向对象中同样有继承,例如:
猫的方法:喵喵叫、吃、喝
狗的方法:汪汪叫、吃、喝
如果给猫和狗都创建一个类,那么猫和狗的所有方法都要写,如:

写法

class 类名(父类):

       ‘’‘

       子类就可以继承父类中公共的属性和方法

       ’‘‘

       pass

上面的代码中我们可以发现,吃,喝方法时一样的,但是写了两遍。
如果用继承的思想,我们可以这样:猫和狗都是动物(动物有吃,喝的方法)

所以,对于面向对象的继承来说,其实就是将多个类共有的方法提取到父类中,子类仅需继承父类而不必一一实现每个方法

class Animal:
    def  eat(self):
        '''
        吃
        :return:
        '''
        print('吃饭了')
        pass
    def drink(self):
        '''
        喝
        :return:
        '''
        pass

class Dog(Animal): #继承了Animal 父类 此时dog就是子类
    def wwj(self):
        '''
        子类独有的实现
        :return:
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值