簡體   English   中英

如何使用班級的__str__進行打印?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM