网站平台建设哪家公司好,艺术设计与制作,天津免费做网站,免费炫酷企业网站源码# __str__ : str(obj),要求必须实现了__str__,要求这个方法的返回值必须是字符串str类型 # print %s str# __repr__: 是__str__的备胎.如果有__str__方法,那么# print %s str都先去执行__str__方法,并且使用__str__的返回值 # 如果没有__str__,那么 print %s str…# __str__ : str(obj),要求必须实现了__str__,要求这个方法的返回值必须是字符串str类型 # print %s str# __repr__: 是__str__的备胎.如果有__str__方法,那么# print %s str都先去执行__str__方法,并且使用__str__的返回值 # 如果没有__str__,那么 print %s str都会执行repr # repr(obj),%r 在子类中使用__str__,先找子类的__str__,没有的话要向上找,只要父类不是object,就执行父类的__str__ 但是如果除了object之外的父类都没有__str__方法,就执行子类的__repr__方法,如果子类也没有, 还要向上继续找父类中的__repr__方法. 一直找不到 再执行object类中的__str__方法 a 123
print(a)
print(repr(a))class A:def __init__(self,name):self.name namedef __str__(self):return **%s**%self.namedef __repr__(self):return self.nameclass B(A):def __init__(self,name):self.name namedef __repr__(self):return ***a B(alex)
print(a)
print(str(a),repr(a))
print(%s | %r%(a,a))print(---%r---%(abc))
print(---%s---%(abc))__str__ __repr__ : reprobject类中的解释是str返回的str(self),repr返回的是repr(self),但是在普通类中这样会造成递归的效应,只能根据优先级 重构str方法,返回repr(self) ******** class A():def __init__(self,name):self.namenamedef _str__(self):return repr(self) #此处模仿object类中__str__方法的返回值aA(ales)
print(a)
print(type(a.__str__())) #返回值是一个字符串类型转载于:https://www.cnblogs.com/luxiangyu111/p/9414527.html