Python学习笔记(六):面向对象

昨天写了面向对象的内容,结果关机时没发布,什么都没有了,极其难受

  • 创建类

  • @staticmethod

静态方法,个人理解是self对象未被调用的方法,甚至不用实例化,可以直接调用
在这里插入图片描述

  • __init__

实例化刚开始时调用的函数

  • __del__

实例销毁时,就是对象不再被调用时触发,内存回收机制
tom和jack的调用都执行完,对象不再被使用,执行del函数
在这里插入图片描述

  • 私有变量

变量前加两条下划线,外部访问不到,变成类的私有变量,
其实python是把这个私有变量改了名字,类似_Student__name这样,外部可以访问,但不要这样做,万一不同版本定义的不同呢
变量前后都有两条下划线,是特殊变量,外部是可以访问的
在这里插入图片描述

  • 修改私有变量

在类中增加相应的函数
在这里插入图片描述

  • 继承

  • 思路

要统计男孩和女孩的信息,相同点有名字和年龄,不同点为玩具和书
将相同点放在一个类中作为父类,男孩女孩只记录各自的不同点,并调用父类
在这里插入图片描述
在这里插入图片描述

在Boy类中,并没有对self.name赋值,引用的Child父类中的self.name

Boy实例化时,将自身self传入到Child.__init__中,用来初始化Child类
在这里插入图片描述

  • 多态
现在删掉Girl中的tell函数,依然执行lily.tell()

Girl已经没有tell(),python会向上查找,找到父类中tell(),因在__init__中,Girl已将self传入Child,所以可以用自身self,调用Child.tell()
在这里插入图片描述
个人理解的多态,好像没啥实际作用,看下图
只要有run()这个方法,不管传入的是什么对象,都可以调用,
python的动态语言特性,感觉就是平时的代码习惯,有机会去看看java的静态语言是啥样的
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值