[英]How to make print use my class's __str__?
有沒有什么辦法讓Python的print
用我的課的__str__
,當它們被其他類包含的?
class C(object):
def __str__(self):
return 'MyC'
print C() # OK
print [C()] # prints [<__main__.C object at 0x7fb8774e59d0>]
您還必須定義__repr__
因為您沒有直接調用它的__str__
方法,並且打印列表調用的是值的__repr__
方法而不是__str__
。
class C(object):
def __str__(self):
return 'MyC'
def __repr__(self):
return self.__str__() # return the same result as the __str__ method
print C() # prints MyC
print [C()] # also prints MyC
Python會打印在一個容器中的再版 resentation時,如你所見。 您可以定義__repr__
而不是__str__
。 但是,如果可能的話,該程序旨在產生可以進行評估以再次返回對象的字符串。 因此,要在您的情況下處理這兩種情況,您可以執行此操作。
class C(object):
def __repr__(self):
return 'C()'
print( C() )
print( [C()] )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.