吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1315|回复: 0
收起左侧

[Python 转载] 【笔记】多态、特殊方法和运算符重载

[复制链接]
cccyyys 发表于 2021-6-29 10:03
多态
多态是指同一个方法调用由于对象的不同可能产生不同的行为。
注意点:1、多态是方法的多态,属性没有多态。
2、多态的存在有2个不要条件:继承、方法重写。
[Python] 纯文本查看 复制代码
class Person:
    def eat(self):
        print('吃饭了!')
class Chinese(Person):
    def eat(self):
        print("中国人使用筷子吃饭")
class English(Person):
    def eat(self):
        print("英国人使用刀叉吃饭")
class Indian(Person):
    def eat(self):
        print("印度人使用右手吃饭")

def manEat(m):
    if isinstance(m,Person):  #m如果是Person的子类,那么会调用该子类的eat方法,如果不是,无法调用
        m.eat()
    else:
        print('未知')
        
manEat(Chinese())  #输入Person的子类才会进行调用

运行结果:中国人使用筷子吃饭
这个只是为了测试多态,m只有为Person子类时才会调用eat方法,不同的子类打印出的结果不同,如果不属于Person的子类,则无法调用。
好了,到此面向对象的三大特征就学习完了,下面是特殊方法和运算符重载。
特殊方法和运算符重载
Python中的运算符实际上是通过调用对象的特殊方法实现的,比如:
[Python] 纯文本查看 复制代码
a = 20
b = 30
c = a+b
d = a.__add__(b)
print("c=:",c)
print("d=:",d)

运算结果:c=: 50
d=: 50
实际上“+”号就是代替了__add__()方法,比较便于操作。

运算符对应的特殊方法

运算符对应的特殊方法

这是运算符对应的方法。
常见的特殊方法如下:

常见的特殊方法

常见的特殊方法
我们也可以重写特殊方法,实现方法的重载。
[Python] 纯文本查看 复制代码
class Person:
    def __init__(self,name):
        self.name = name
    def __add__(self, other):  #重载加法
        if isinstance(other,Person):
            print("{0}----{1}".format(self.name,other.name))
        else:
            print('无法相加')
    def __mul__(self, other):  #重载乘法
        if isinstance(other,int):
            print(self.name*other)
        else:
            print("不能相乘")


s1 = Person("cys")
s2 = Person("jdx")
p = s1+s2
x = s1*3

运算结果为:cys----jdx
cyscyscys
这里就实现了加法与乘法的重载,将该方法修改成我们想要的方法。

免费评分

参与人数 2吾爱币 +4 热心值 +2 收起 理由
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Ljh666 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-2 07:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表