Task11:魔方方法
魔术方法,指python中所有以”__”(双下划线)作为名字开头和结尾的方法。它们也被称为“dunders”。我们最常用到的应该就是“init”了。
1.算数方法
我们可以理解为运算符的重载,我们以加法为例,把加法进行重载。
class jiafa:
def __init__(self,x,y):
self.x=x
self.y=y
def __add__(self,other):
return jiafa(self.x+other.x,self.y+other.y)
first=jiafa(1,2)
second=jiafa(2,3)
third=jiafa(3,4)
result=first+second+third
print(result.x)
print(result.y)
6
9
2.del(self)
析构器,当一个实例被销毁的时候调用的方法
class Cat:
def __init__(self,name,age):
self.name=name
self.age=age
def __del__(self):
print("对象已经销毁")
cat1=Cat("Tom",1)
cat3=cat1
del cat1
cat2=Cat("jiafei",2)
3.str(self):相当于C语言里面重载的toString方法
class Cat:
def __init__(self,name,age):
self.name=name
self.age=age
def __str__(self):
return self.name+str(self.age)+"岁"
cat1=Cat("Tom",1)
cat2=Cat("jiafei",2)
print(cat1)
print(cat2)
Tom1岁
jiafei2岁
4.mro():继承下方法搜索调用的优先级
class Base(object):
def test(self):
print()
class A(Base):
def test(self):
print("A")
class B(Base):
def test(self):
print("B")
class C(A,B):
pass
A
(<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <class '__main__.Base'>, <class 'object'>)