python 特殊方法和运算符重载

python 特殊方法和运算符重载,第1张

python 特殊方法运算重载

特殊方法和运算符重载

Python 的运输符实际上是通过调用对象的特殊方法实现的

a = 10
b = 10
c = a + b
d = a.__add__(b)
print('c=',c)
print('d=',d)

 特殊方法

方法说明例子__init__构造方法对象创建:p = Person()__del__析构方法对象回收__call__函数调用a()__getattr__点号运算a.xxx__repr__,str__打印,转换print(a)__getitem__索引运算a[key]

__setitem__

索引赋值

a[key]=value

__len__长度len(a)

 运算符方法

运算符特殊方法说明运算符 +__add__加法运算符 -__sub__减法<,<,=,==__lt__,__le__,__eq__比较运算符>,> =,!=__gt__,__ge__,__ne__比较运算符|,^,&__or__,__xor__,__and__或,异或,与<<,>>__lshift__,__rshift__左移,右移*,/,%,//__mul__,__truediv__,__mod__,__floordiv__乘,浮点数,模运算(取余),整数除**__pow__指数运算

# 运算符的重载
class Student:
    def __init__(self,name):
        self.name = name
    

p1 = Student('小明')
p2 = Student('小红2')

x = p1 + p2
print(x)

# 运算符的重载
class Student:
    def __init__(self,name):
        self.name = name
    
    def __add__(self,other):
        if isinstance(other, Student):
            return "{0}--{1}".format(self.name,other.name)
        else:
            return "不是同类对象,不能相加"

p1 = Student('小明')
p2 = Student('小红2')

x = p1 + p2
print(x)

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5571920.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-14

发表评论

登录后才能评论

评论列表(0条)

    保存