在類定義里,使用__str__
和__repr__
雙下劃線能夠自行控制類中的字符串轉(zhuǎn)換.
代碼示例
class Car:
def __init__(self,color,mileage):
self.color = color
self.mileage = mileage
def __repr__(self):
return (f'{self.__class__.__name__}('
f'{self.color!r},{self.mileage!r})')
def __str__(self):
return f'a {self.color} car'
my_car = Car('blue',929192)
print(my_car)
#=> a blue car
#=> 如果不定義__str__,則結(jié)果為 Car('blue',929192)
__str__
的結(jié)果應(yīng)該是可讀的.__repr__
的結(jié)果應(yīng)該是無歧義的,方便開發(fā)人員調(diào)試.如果沒有定義
__str__
, 則會默認調(diào)用__repr__