__ str __ 使用print时触发str(f1)---->触发f1.__ str __()
class Foo:
def __init__(self,name,age):
self.name = name
self.age = age
def __str__(self):
return '名字是%s 年龄是%s'% (self.name,self.age)
f1 = Foo('malin',17)
print(f1) #---->触发str(f1)---->触发f1.__ str __()
输出:
名字是malin 年龄是17
__ repr__ 在解释器中触发
先找str(f1),如果没有,就找repr(f1)---->触发f1.__ repr __()
class Foo:
def init(self,name,age):
self.name = name
self.age = age
def repr(self):
return ‘名字是%s 年龄是%s’% (self.name,self.age)
f1 = Foo(‘malin’,17)
print(f1) #---->先找str(f1),如果没有,就找repr(f1)---->触发f1.__ repr __()
输出:
输出:
名字是malin 年龄是17