Python實踐38-魔術方法repr
02-16
背景
- 內置函數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,您可以訪問下面的鏈接獲得。
代碼地址推薦閱讀: