1:使用场景:
很多时候我们自己编写的一个类在终端上打印出来的时候,结果往往不太令人满意
类默认转化的字符串并没有有意义的信息,仅有类名和实例在内存中的ID
2: 使用str实现类到实例化的转化
可以在类里实现__str__和__repr__方法从而自定义类的字符串描述
首先,加一个_str_方法
class Pair:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return 'str ({0.name!s},{0.age!s})'.format(self)
my_pair = Pair('PT', '30')
print(my_pair)
result:
str (PT,30)
也可以用用print(str(my_pair)),结果一样
增加_repr_方法
class Pair:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return 'str ({0.name!s},{0.age!s})'.format(self)
def __repr__(self):
return 'repr ({0.name!r},{0.age!r})'.format(self)
my_pair = Pair('PT', '30')
print(repr(my_pair))
result:repr ('PT','30')
当类中没有str方法的时候,会去调用repr方法,所以一般类中需要定义repr方法
class Pair:
def __init__(self, name, age):
self.name = name
self.age = age
# def __str__(self):
# return 'str ({0.name!s},{0.age!s})'.format(self)
def __repr__(self):
return 'repr ({0.name!r},{0.age!r})'.format(self)
my_pair = Pair('PT', '30')
print(str(my_pair))
result:
repr ('PT','30')