python函数中的多态 python中多态的定义

Python中的面向对象(高级)之私有方法、多继承、多态 特征:私有属性与私有方法不能从外部被调用,也不能被子类继承
唯一写法:在属性或方法前面加上__(两个下划线)
我们写一个简单的例子,创建一个类,包含私有方法、私有属性、普通方法、普通属性,并生成一个实例
私有属性和私有方法可以从内部被调用(总不能我写了,但是哪都不让用吧)
我们试试在类里再加入一个新的方法 , 调用私有方法和属性
可以看到,私有属性和私有方法是可以在类内部被调用的 。
举个私有属性应用场景的例子
二 。object类
我们试一下
三 。多继承
一个子类可以继承多个父类,用逗号隔开
多个父类中有同名方法时,按照继承顺序进行调用
四 。多态
当不同的实例,有同名的方法时,我们可以一个函数,传入不同的实例,执行对应的方法 。
我们定义一个猫和一个狗的类,两个类中都有'叫'的方法 。并各生成一个实例 。
定义一个函数,用函数来调用'叫'的方法
这就叫多态 。
Python类的继承与多态详细介绍 类(Class): 用来描述具有相同的属性和方法的对象的集合 。
类变量python函数中的多态:类变量在整个实例化的对象中是公用的 。类变量定义在类中且在函数体之外 。类变量通常不作为实例变量使用 。
类有一个名为 __init__() 的特殊方法(构造方法)python函数中的多态,该方法在类实例化时会自动调用
self:self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类 。
类调用 Car.weight
实例化 car01=Car(5)
实例对象调用 car01.weght
我们在构造类时,Python3默认我们继承python函数中的多态了object这个基类,我个人理解object就是个空的类,可以不用管为何要在括号中写上object,这是Python3的特性,在python2中如果你没有写object的话不会默认继承python函数中的多态了object这个基类 。
同样的我们自己希望继承的父类只需要把objetc改为我们自己定义的类名即可 。子类中可以拥有父类中所有的公有属性和方法,但是可以通过在变量名前加下划线使其变为私有,这样子类就不可以访问父类中的成员了 。
以下三个公交车类的父类均为客车类,我们可以写一个funcs方法使得每次调用funcs方法时,传入不同的对象以执行不同的func方法,具体实现如下:
主函数 :
可以看到,我将小 汽车 实例化为带有重量为5t的一个具体对象,将客车实例化为带有重量为20t的一个具体对象,将三个公交车实例化为带有重量为15t的一个具体对象.
【python函数中的多态 python中多态的定义】 如上图所示,我每次在调用funcs方法时都传入了一个实例化对象,funcs根据不同的对象执行相应的内部方法 。
Python中的多态?times函数为例谈谈多态,就像我们看到python函数中的多态的那样,times函数中表达式×*y的意义完全取决于x和y的对象类型,同样的函数,在一个实例下执行的是乘法,在另一个实例下执行的却是重复 。Python把对某一对象在某种语法下的合理性交给那个对象自身来判断 。实际上,*作为一个分派机制,将执行的控制权移交给被处理的对象 。
这种依赖类型的行为称为多态,其含义就是一个操作的意义取决于被操作对象的类型 。因为Python是动态类型语言 , 所以多态在Python中随处可见 。事实上,在 Python中所有操作都是多态的操作:print、index、*运算符 , 以及更多 。这实际上是有意而为的,并且从很大程度上算作是这门语言简洁性和灵活性的一个表现 。例如 , 函数可以自动地应用到所有类别的对象上 。只要对象支持所预期的接口(也称为协议),函数就能处理它们 。也就是说,如果传给函数的对象支持预期的方法和表达式运算符,那么它们对函数的逻辑来说就是有着即插即用的兼容性 。

推荐阅读