摘要:實現一個簡單二維向量類內置函數把一個對象用字符串的形式表達出來以便辨認這就是字符串表示形式就是通過這個特殊方法來得到一個對象的字符串表示形式的如果沒有實現會得到與的區別前者方便我們調試和記錄日志后者給終端用戶看如果要二選一是更好的選擇因為
實現一個簡單二維向量類
#!/usr/bin/env python # coding=utf-8 from math import hypot class Vector: def __init__(self, x=0, y=0): self.x = x self.y = y
def __repr__(self): """ 內置函數repr, 把一個對象用字符串的形式表達出來以便辨認,這就是"字符串表示形式". repr就是通過__repr__這個特殊方法來得到一個對象的字符串表示形式的. 如果沒有實現__repr__,會得到__repr__ 與 __str__的區別, 前者方便我們調試和記錄日志, 后者給終端用戶看. 如果要二選一, __repr__是更好的選擇, 因為如果一個對象沒有__str__函數, Python在需要調用是會用__repr__作為替代. """ return "Vector(%r, %r)" % (self.x, self.y)
def __abs__(self): return hypot(self.x, self.y) def __bool__(self): return bool(abs(self)) def __add__(self, other): x = self.x + other.x y = self.y + other.y return Vector(x, y) def __mul__(self, scalar): return Vector(self.x * scalar, self.y * scalar)
v1 = Vector(1, 4) v2 = Vector(2, 8) print(v1 + v2)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/42261.html
摘要:這些基本的特殊方法在類中定義中幾乎總是需要的。和方法對于一個對象,有兩種字符串表示方法。這些都和內置函數以及方法緊密結合。帶有說明符的合理響應是返回。 注:原書作者 Steven F. Lott,原書名為 Mastering Object-oriented Python 有許多特殊方法允許類與Python緊密結合,標準庫參考將其稱之為基本,基礎或本質可能是更好的術語。這些特殊...
摘要:第一章數據類型隱式方法利用快速生成類方法方法通過下標找元素自動支持切片操作可迭代方法與如果是一個自定義類的對象,那么會自己去調用其中由你實現的方法。若返回,則會返回否則返回。一個對象沒有函數,解釋器會用作為替代。 第一章 python數據類型 1 隱式方法 利用collections.namedtuple 快速生成類 import collections Card = collec...
摘要:第一章數據類型隱式方法利用快速生成字典方法方法通過下標找元素自動支持切片操作可迭代方法與如果是一個自定義類的對象,那么會自己去調用其中由你實現的方法。若返回,則會返回否則返回。一個對象沒有函數,解釋器會用作為替代。 第一章 python數據類型 1 隱式方法 利用collections.namedtuple 快速生成字典 import collections Card = coll...
摘要:它首先被程序語言的設計領域所采用并在和面向對象方面取得了成績。面向對象中的反射通過字符串的形式操作對象相關的屬性。注構造方法的執行是由創建對象觸發的,即對象類名而對于方法的執行是由對象后加括號觸發的,即對象或者類執行執行邏輯題 isinstance和issubclass 1.isinstance(obj,cls)檢查是否obj是否是類 cls 的對象 #!/usr/bin/env py...
摘要:第二章與的無縫集成基本特殊方法筆記中有有一些特殊的方法它們允許我們的類和更好的集成和方法通常方法表示的對象對用戶更加友好這個方法是有對象的方法實現的什么時候重寫跟非集合對象一個不包括其他集合對象的簡單對象這類對象格式通常不會特別復 第二章 與Python的無縫集成----基本特殊方法.(Mastering Objecting-oriented Python 筆記) python中有有一...
閱讀 2566·2021-11-23 09:51
閱讀 3363·2021-11-22 15:22
閱讀 1876·2021-11-18 13:22
閱讀 2266·2021-09-24 09:48
閱讀 1314·2019-08-29 13:58
閱讀 1307·2019-08-26 13:39
閱讀 2450·2019-08-26 10:48
閱讀 3037·2019-08-26 10:21