我想知道为什么输出的结果会对代码中定义的某一类对象返回一个错误。__str__
命令。类型错误会在 __str__
与print相对于return命令一起使用。
class Card():
def __init__(self,suit,rank):
self.suit = suit
self.rank = rank
def __str__(self):
print (f'{self.rank} of {self.suit}')
随后的命令如下--------。
test_card = Card ('Hearts',"Three")
print (test_card)
输出打印如下
Three of Hearts
--------------------------------------------------------------------------- TypeError
Traceback (most recent call last) <ipython-input-55-483c6e59f50e> in <module>
1 test_card = Card ('Hearts',"Three")
----> 2 print (test_card)
TypeError: __str__ returned non-string (type NoneType)
-------------------------------------------------------------------------------
如果我改变了 __str__
功能,以 return f'{self.rank} of {self.suit}'
,输出是简单的 红桃三.
错误信息准确地告诉你是什么问题,你已经找到了修复方法--神奇的 __str__
功能应该是 返回 该字符串,而不是 印制 弦,并返回 None
.