###__add__ 魔法函数(与之相关的__radd__反向加法)
'''
触发时机:使用对象进行运算相加的时候自动触发
功能:对象运算
参数:二个对象参数
返回值:运算后的值
'''
class MyClass():
def __init__(self,num):
self.num=num
#对象在 加号+ 的左侧时,自动触发
def __add__(self, other):
##self 接受的是对象
##other 接受的是
return self.num+other
##对象在 加号+ 的左侧时,自动触发
def __radd__(self, other):
return self.num+other*3
#add方法
a=MyClass(10)
res=a+1
print(res)
##(2)radd方法
b=MyClass(5)
res=3+b
print(res)
##(3)对象+对象
'''
先触发add方法
self 接收a
other 接收b
return self.num+other => return 10+b
后触发radd方法
self 接收b
other 接收10
return self.num + other*3 => 5+10*3=35
'''
res=a+b
print(res)
'''__len__魔法函数'''
'''
触发时机:使用len(对象)的时候自动触发
功能:用于检测对象中或者类中成员个数
参数:一个self接收当前对象
返回值:必须返回整型
'''
class MyClass():
pty1=1
pty2=2
__pty3=3
def func1(self):
print(1)
def func2(self):
print(2)
def func3(self):
print(3)
def __len__(self):
return 6
obj=MyClass()
res=len(obj)
print(res)
Python 魔法函数
最新推荐文章于 2024-08-10 22:15:00 发布