# __str__ 与__repr__
class School:
def __init__(self,name,addr,type):
self.name = name
self.addr = addr
self.type = type
print('__init__...')
def __repr__(self):
return 'School(%s,%s)' %(self.name,self.addr)
def __str__(self):
return '(%s,%s)' %(self.name,self.addr)
s1=School('小猿圈','北京','私立')
print('from repr: ',repr(s1))
print('from str: ',str(s1))
print(s1) # 自动触发__str__
'''
str函数或者print函数调用时--->obj.__str__()
repr或者交互式解释器中调用时--->obj.__repr__()
如果__str__没有被定义,那么就会使用__repr__来代替输出
注意:这俩方法的返回值必须是字符串,否则抛出异常
'''
类的双下划线方法# __str__ 与__repr__
Python类的__str__与__repr__方法解析
最新推荐文章于 2025-06-11 09:29:40 发布
本文详细介绍了Python中类的__str__与__repr__方法的使用场景与区别。__str__方法主要用于提供一个易读的字符串表示,而__repr__方法则用于提供一个精确的字符串表示,通常用于调试。当直接打印对象或使用str()函数时,会调用__str__方法;在交互式解释器中或使用repr()函数时,则会调用__repr__方法。如果未定义__str__方法,将默认使用__repr__方法。

1666

被折叠的 条评论
为什么被折叠?



