python笔记之多态

一,重写内置函数

在python中,以双下划线开头,双下划线结尾的是系统定义的成员,我们将其重写,就可以改变其行为。

__str__函数在print类对象时,可以打印其返回内容(将自定义对象转为字符串)

__int__,__float__等函数有相似功能,不常用

算数运算符重载:

方法名运算符和表达式说明
__add__(self,rhs)self+rhs加法
__sub__(self,rhs)self-rhs减法
__mul__(self,rhs)self*rhs乘法
__truediv__(self,rhs)self/rhs除法
__floordiv__(self,rhs)self//rhs地板除
__mod__(self,rhs)self%rhs求余
__pow__(self,rhs)self**rhs求幂

自定义对象可以使用算数运算符

复合运算符

例如+=,在使用普通运算符函数也可以实现其功能

其在可变对象运算时,在原有基础上修改

在不可变对象运算时,会创建新对象

自定义对象为可变对象,所以需要复合运算符,此时返回原数据

函数名为在算数运算符函数名前加 i 就可以

比较运算符

方法名运算符和复合赋值语句说明
__lt__(self,rhs)self<rhs

小于

__le__(self,rhs)self<=rhs小于等于
__gt__(self,rhs)self>rhs

大于

__ge__(self,rhs)self>=rhs

大于等于

__eq__(self,rhs)self==rhs

等于

__ne__(self,rhs)self!=rhs不等于

最常用的内置函数工具

当重写自定义类的比较运算符内置函数(主要为eq与lt)后,可以使用类内的函数,排序,计数等

列表功能函数的本质也是调用比较等基本函数

== 按eq比较

is 按地址比较

二,重写自定义函数

class Person
   def __init__(self,name):
       self.name=name

   def go_to(self,position,vehicle):
       Print(self.name,”去”,position)
       #先确定用法
       #编程时调用父类函数
       vehicle。transport()

class Vehicle:
    def transport(self):
        Pass

class Car(Vehicle):
    #重写父类函数
    def transport(self):
        print(“111”)

Class airplane(Vehicle):
    def transport(self):
        Print(“222”)

定义:子类实现了父类中相同的方法(方法名,参数),在调用父类方法时,实现子类方法

快捷键:ctrl+o

作用:在继承的基础上,体现类型的个性(一个行为有不同实现)。增强程序灵活性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值