Python實踐38-魔術方法repr

背景

  • 內置函數repr是通過__repr__這個特殊方法來得到一個對象的字元串表示形式
  • repr適用於互動式控制台和調試程序,用來獲取字元串表示形式
  • 類似的內置函數str使用的是__str__,它適用於print函數,它對終端用戶更友好
  • 如果想偷懶,可以只實現__repr__,因為如果一個對象沒有__str__,而Python又需要調用它的時候,解釋器會使用__repr__來代替

例子

class MyClass(object): def __repr__(self): return repr MyClassObj def __str__(self): return MyClassObjclass YourClass(object): def __repr__(self): return YourClassObjif __name__ == "__main__": obj = MyClass() print(repr(obj)) # output: repr MyClassObj print(str(obj)) # output: MyClassObj print(obj) # output: MyClassObj # 如果一個對象沒有__str__,而Python又需要調用它的時候,解釋器會使用__repr__來代替 obj2 = YourClass() print(obj2) # output: MyClassObj

代碼下載

本文代碼已經歸檔到github,您可以訪問下面的鏈接獲得。

代碼地址


推薦閱讀:

TAG:Python | Python入門 | Python開發 |