亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何為類對象創建自定義字符串表示形式?

如何為類對象創建自定義字符串表示形式?

慕絲7291255 2019-09-02 09:25:01
考慮這個課程:class foo(object):    pass默認字符串表示形式如下所示:>>> str(foo)"<class '__main__.foo'>"如何將此顯示設為自定義字符串?
查看完整描述

3 回答

?
莫回無

TA貢獻1865條經驗 獲得超7個贊

實現__str__()或__repr__()在類的元類中。


class MC(type):

  def __repr__(self):

    return 'Wahaha!'


class C(object):

  __metaclass__ = MC


print C

使用__str__,如果你說的是可讀的字串,使用__repr__了明確的表示。


查看完整回答
反對 回復 2019-09-02
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

class foo(object):

    def __str__(self):

        return "representation"

    def __unicode__(self):

        return u"representation"


查看完整回答
反對 回復 2019-09-02
?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

如果您必須在第一個之間進行選擇__repr__或者選擇__str__第一個,則默認情況下在未定義時執行__str__調用__repr__。


自定義Vector3示例:


class Vector3(object):

    def __init__(self, args):

        self.x = args[0]

        self.y = args[1]

        self.z = args[2]


    def __repr__(self):

        return "Vector3([{0},{1},{2}])".format(self.x, self.y, self.z)


    def __str__(self):

        return "x: {0}, y: {1}, z: {2}".format(self.x, self.y, self.z)

在此示例中,repr再次返回可以直接使用/執行的字符串,而str作為調試輸出更有用。


v = Vector3([1,2,3])

print repr(v)    #Vector3([1,2,3])

print str(v)     #Vector(x:1, y:2, z:3)


查看完整回答
反對 回復 2019-09-02
  • 3 回答
  • 0 關注
  • 518 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號