摘要:實(shí)現(xiàn)一個簡單二維向量類內(nèi)置函數(shù)把一個對象用字符串的形式表達(dá)出來以便辨認(rèn)這就是字符串表示形式就是通過這個特殊方法來得到一個對象的字符串表示形式的如果沒有實(shí)現(xiàn)會得到與的區(qū)別前者方便我們調(diào)試和記錄日志后者給終端用戶看如果要二選一是更好的選擇因?yàn)?/p>
實(shí)現(xiàn)一個簡單二維向量類
#!/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): """ 內(nèi)置函數(shù)repr, 把一個對象用字符串的形式表達(dá)出來以便辨認(rèn),這就是"字符串表示形式". repr就是通過__repr__這個特殊方法來得到一個對象的字符串表示形式的. 如果沒有實(shí)現(xiàn)__repr__,會得到__repr__ 與 __str__的區(qū)別, 前者方便我們調(diào)試和記錄日志, 后者給終端用戶看. 如果要二選一, __repr__是更好的選擇, 因?yàn)槿绻粋€對象沒有__str__函數(shù), Python在需要調(diào)用是會用__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)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/42261.html
摘要:這些基本的特殊方法在類中定義中幾乎總是需要的。和方法對于一個對象,有兩種字符串表示方法。這些都和內(nèi)置函數(shù)以及方法緊密結(jié)合。帶有說明符的合理響應(yīng)是返回。 注:原書作者 Steven F. Lott,原書名為 Mastering Object-oriented Python 有許多特殊方法允許類與Python緊密結(jié)合,標(biāo)準(zhǔn)庫參考將其稱之為基本,基礎(chǔ)或本質(zhì)可能是更好的術(shù)語。這些特殊...
摘要:第一章數(shù)據(jù)類型隱式方法利用快速生成類方法方法通過下標(biāo)找元素自動支持切片操作可迭代方法與如果是一個自定義類的對象,那么會自己去調(diào)用其中由你實(shí)現(xiàn)的方法。若返回,則會返回否則返回。一個對象沒有函數(shù),解釋器會用作為替代。 第一章 python數(shù)據(jù)類型 1 隱式方法 利用collections.namedtuple 快速生成類 import collections Card = collec...
摘要:第一章數(shù)據(jù)類型隱式方法利用快速生成字典方法方法通過下標(biāo)找元素自動支持切片操作可迭代方法與如果是一個自定義類的對象,那么會自己去調(diào)用其中由你實(shí)現(xiàn)的方法。若返回,則會返回否則返回。一個對象沒有函數(shù),解釋器會用作為替代。 第一章 python數(shù)據(jù)類型 1 隱式方法 利用collections.namedtuple 快速生成字典 import collections Card = coll...
摘要:它首先被程序語言的設(shè)計(jì)領(lǐng)域所采用并在和面向?qū)ο蠓矫嫒〉昧顺煽儭C嫦驅(qū)ο笾械姆瓷渫ㄟ^字符串的形式操作對象相關(guān)的屬性。注構(gòu)造方法的執(zhí)行是由創(chuàng)建對象觸發(fā)的,即對象類名而對于方法的執(zhí)行是由對象后加括號觸發(fā)的,即對象或者類執(zhí)行執(zhí)行邏輯題 isinstance和issubclass 1.isinstance(obj,cls)檢查是否obj是否是類 cls 的對象 #!/usr/bin/env py...
摘要:第二章與的無縫集成基本特殊方法筆記中有有一些特殊的方法它們允許我們的類和更好的集成和方法通常方法表示的對象對用戶更加友好這個方法是有對象的方法實(shí)現(xiàn)的什么時候重寫跟非集合對象一個不包括其他集合對象的簡單對象這類對象格式通常不會特別復(fù) 第二章 與Python的無縫集成----基本特殊方法.(Mastering Objecting-oriented Python 筆記) python中有有一...
閱讀 2553·2021-11-23 09:51
閱讀 3354·2021-11-22 15:22
閱讀 1868·2021-11-18 13:22
閱讀 2235·2021-09-24 09:48
閱讀 1308·2019-08-29 13:58
閱讀 1297·2019-08-26 13:39
閱讀 2444·2019-08-26 10:48
閱讀 3028·2019-08-26 10:21