面向对象

关于面向对象
1.面向对象__init__方法;
init方法新建对象时自动加载调用为默认方法

2.方法的重写和继承父类
1.当与父类方法不一样时,直接在子类中与重写方法,方法名一样即可。这样只会调用子类的方法,不会再去用父类中同名的方法。(完全不同)
2.对父类方法进行扩展,用super()进行调用扩展,先同样对方法进行同名扩展后增加不一样的代码部分,而后相同部分可以进行super().方法 进行对父类同样代码部分的调用(部分相同,py3中才有)
在这里插入图片描述
在py2.0中没有super()方法只能使用父类名方法调用如 Dog.bark(self)一定要传入self
且用这种扩展方法时,不能调用自己的方法会出现递归死循环

3.私有方法和属性
私有属性和方法,在子类中不能直接访问父类的私有属性和方法,私有属性方法前带有两个下划线,
self.__num2 私有属性

def __test():
print("私有方法“)
子类对象中自己的内部不能直接访问,私有属性和方法,想要访问父类创建的私有属性和方法,必须改变改变原来父类,将父类中的公有方法中进行调用父类自己的私有属性和私有方法,然后子类调用这个公有方法就可以了,这样做必须是父类中私有属性方法,被公有方法调用。
在这里插入图片描述

4.多继承
一个类可以同时继承多个父类,减少代码的冗余,具有所有父类的方法。
代码格式
class A():
pass

class B():
pass

class C(A , B):
pass

父类之间不要存在重名方法和属性
如果存在同名方法,会按照MRO搜索 先搜自己的方法,然后按照继承顺序搜索,没有搜到程序报错

5.多态

6.类属性
1.记录实例的类的特征工具,不会记录每一个对象实例的特征
在这里插入图片描述

  1. 类方法
    在这里插入图片描述
    8.静态方法
    既不需要访问类属性cls,也不需要访问实例属性self, 就可以定义为静态方法

方法综合案例:

1.实例方法-- 方法内部需要访问实例属性
2.类方法–方法内部只访问类属性
3 静态方法–方法内部,不需要访问实例属性和类属性
在这里插入图片描述
单例的代码演示:
单例为同一类只存在一个真实的实例,建立不同的对象时其实他们内存地址都为一样
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值