Python實用筆記 (26)物件導向進階編程——定製類

來源:互聯網
上載者:User

標籤:物件導向   __str__   常見   解決辦法   print   fun   字串   object   直接   

Python的class允許定義許多定製方法,可以讓我們非常方便地產生特定的類。以下是集中常見的定製方法:

怎麼才能列印得好看呢?只需要定義好__str__()方法,返回一個好看的字串就可以了:

__str__()

>>> class Student(object):...     def __init__(self, name):...         self.name = name...     def __str__(self):...         return ‘Student object (name: %s)‘ % self.name...>>> print(Student(‘Michael‘))Student object (name: Michael)

這樣列印出來的執行個體,不但好看,而且容易看出執行個體內部重要的資料。

但是細心的朋友會發現直接敲變數不用print,列印出來的執行個體還是不好看:

>>> s = Student(‘Michael‘)>>> s<__main__.Student object at 0x109afb310>

這是因為直接顯示變數調用的不是__str__(),而是__repr__(),兩者的區別是__str__()返回使用者看到的字串,而__repr__()返回程式開發人員看到的字串,也就是說,__repr__()是為調試服務的。

解決辦法是再定義一個__repr__()。但是通常__str__()__repr__()代碼都是一樣的,所以,有個偷懶的寫法:

class Student(object):    def __init__(self, name):        self.name = name    def __str__(self):        return ‘Student object (name=%s)‘ % self.name    __repr__ = __str__

 

Python實用筆記 (26)物件導向進階編程——定製類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.