爲什麼第一個代碼打印,而第二個代碼不打印?返回有什麼特別的嗎?python返回並通過類打印
In [339]: class fraction:
def __init__(self,top,bottom):
self.num=top
self.den=bottom
def __str__(self):
return str(self.num)+"/"+str(self.den)
.....:
In [340]: f=fraction(3,8)
In [341]: print(f)
3/8
In [342]: class fraction:
def __init__(self,top,bottom):
self.num=top
self.den=bottom
def __str__(self):
print str(self.num)+"/"+str(self.den)
.....:
In [343]: f=fraction(3,8)
In [344]: print(f)
3/8
TypeError Traceback (most recent call last)
<ipython-input-344-d478acf29e40> in <module>()
----> 1 print(f)
TypeError: __str__ returned non-string (type NoneType)
您需要在第二個返回。 – badc0re
@ badc0re:啊,就這樣!我坐在這裏眯着眼睛,試圖弄清楚這兩個階級如何不同。 | - } –