python——面向对象(2)

本文深入探讨了Python面向对象编程的关键概念,包括通过`__init__`方法初始化对象,如何使用`__del__`和`__str__`方法,私有属性和方法的实现及访问,以及继承和多态的基本原理。同时提到了对象的生命周期,多继承下的方法解析顺序(MRO),并强调了在对象销毁前调用`__del__`的时机。此外,还讨论了如何避免命名冲突和合理利用私有特性来增强代码封装性。
摘要由CSDN通过智能技术生成

小注释: id() 函数可以输出变量的内存地址(十进制输出);
直接打印对象变量,可以输出内存地址(十六进制)

1、对象增加属性

对象 . 属性名 ,就可以给对象增加属性(虽简单,但不推荐)
并不修改类的属性,只是简单暴力的在类的外部对对象进行了改变;

2、初始化方法

当使用 类名()创建对象时,会自动执行以下操作:
1.为对象在内存中分配空间——创建对象;
2.为对象的属性设置初始值——初始化方法(__ init __ )
这个初始化方法就是__ init __方法,是对象内置的方法。

3、初始化方法改造

在开发时,如果希望在创建对象时确定属性值,可以对__ init __进行改造

class Cat:
	def __init__(self,name_self):
		self.name = name_self
	def eat(self):
		print("%s balabala" % self.name)
4、内置方法和属性
序号方法名类型作用
01__ del __方法对象被从内存中删除前,会被自动调用
02__ str __方法返回对象的描述信息,print函数输出使用

对象的生命周期,对象是全局变量,只有程序结束时才会执行;
考虑在对象销毁前,再做一点事情,可以考虑调用__def__ 函数

str 必须返回字符串

5.私有属性私有方法

在属性和方法前加两道下划线即可;
私有属性和私有方法在外部不能被访问

伪私有

下划线+类名+下划线(两道)+方法,就可以实现外部访问

6.继承

class 类名(父类名):
即可实现继承

继承的方法重写

重写(override)在子类中重新编写父类中的同名方法
super.()也可以重写父类方法

父类私有属性和私有方法

子类不可以访问父类的私有属性和方法

7.多继承

class C(父类A,父类B):实现多继承
如果父类A、B中方法相同,应避免使用多继承,

python中的MRO ——方法搜索顺序
C._ _ mro _ _ 调用内置方法,print输出之后就可以看到调用顺序在这里插入图片描述

8.多态

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值