我有一個對象列表。我試圖輸出列表中對象的有意義的表示形式,它揭示了一些實例變量,使用最近版本的Python中內置的string formatting capability。我正在使用Python 3.3.0。對象列表的自定義字符串格式
我在列表中爲對象定義了一個__str__
方法。如果我嘗試打印單個對象,則會得到__str__
方法返回的表示形式。但是如果我嘗試打印整個列表,我會得到通用表示,就好像我沒有定義__str__
方法一樣。以下是一個示例:
class CustomClass:
def __init__(self):
self.instanceVar = 42
def __str__(self):
return "{} (instanceVar = {})".format(self.__class__.__name__, self.instanceVar)
testObject = CustomClass()
print("{}".format(testObject))
# CustomClass (instanceVar = 42)
print("{}".format([testObject]))
# [<__main__.CustomClass object at 0x1006cbed0>]
如何獲得第二個打印語句以打印類似[CustomClass (instanceVar = 42)]
的東西?是否可以通過將正確的格式字符串傳遞給print
函數來完成此操作,還是比這更復雜?
你也可以覆蓋'__repr__' – GP89
@Joran Beasley和unutbu,你們都給出了有用的答案。喬蘭,我決定接受你的答案,因爲你先回答。 –
[在Python中打印對象列表時如何應用\ _ \ _ str \ _ \ _函數](http://stackoverflow.com/questions/3558474/how-to-apply-str-function-when - 打印對象在Python中的列表) –