python学习之__str__,__repr__

Posted 秋雨的蝴蝶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习之__str__,__repr__相关的知识,希望对你有一定的参考价值。

__str__(sekf) 类里没有定义这个方法,类的实例显示内存地址
__str__(self) 类里有定义这个方法,类的实例显示具体属性值
__repr__(self) 在解释器中有用
str函数或者print函数--->obj.__str__()
repr或者交互式解释器--->obj.__repr__()
如果__str__没有被定义,那么就会使用__repr__来代替输出
注意:这俩方法的返回值必须是字符串,否则抛出异常

# l=list(‘hello‘)
#
# print(l)
# file=open(‘test.txt‘,‘w‘)
# print(file)

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(‘egon‘,18)
# print(f1) #str(f1)--->f1.__str__()
#
# x=str(f1)
# print(x)
#
# y=f1.__str__()
# print(y)


class Foo:
def __init__(self,name,age):
self.name=name
self.age=age
# def __str__(self):
# return ‘折是str‘
def __repr__(self):
return ‘名字是%s 年龄是%s‘ %(self.name,self.age)

f1=Foo(‘egon‘,19)
#repr(f1)---->f1.__repr__()
print(f1) #str(f1)---》f1.__str__()------>f1.__repr__()

以上是关于python学习之__str__,__repr__的主要内容,如果未能解决你的问题,请参考以下文章

python __str__ , __repr__区别

python3.x __str__与__repr__

python_魔法方法:__str__()和__repr__()

python Class:面向对象高级编程 __str__ / __repr__

python 的特殊方法 __str__和__repr__

Python学习:__repr__和__str__区别