先告訴大家__str__()方法與__repr__()方法的返回值必須都是字符串,否則就會拋出異常。
看這一段代碼
class Person(object):
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def __str__(self):
return "str-->我的名字是%s,我今年%s歲了,我是%s孩子" % (self.name, self.age, self.sex)
def __repr__(self):
return "repr-->我的名字是%s,我今年%s歲了,我是%s孩子" % (self.name, self.age, self.sex)
# 實例化一個對象
p = Person("丁七歲", 19, "男")
print("str方法:", str(p))
print("repr方法:", repr(p))
運行結果
至於這兩個方法的區別:
當我們使用str函數或者print函數調用時,他是用的__str__()
當我們使用repr或者交互式解釋器中調用時,他是用的__repr__()