成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python __repr__ __str__

Flands / 1691人閱讀

摘要:實現(xiàn)一個簡單二維向量類內(nèi)置函數(shù)把一個對象用字符串的形式表達出來以便辨認(rèn)這就是字符串表示形式就是通過這個特殊方法來得到一個對象的字符串表示形式的如果沒有實現(xiàn)會得到與的區(qū)別前者方便我們調(diào)試和記錄日志后者給終端用戶看如果要二選一是更好的選擇因為

實現(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, 把一個對象用字符串的形式表達出來以便辨認(rèn),這就是"字符串表示形式".
        repr就是通過__repr__這個特殊方法來得到一個對象的字符串表示形式的.
        如果沒有實現(xiàn)__repr__,會得到

        __repr__ 與 __str__的區(qū)別, 前者方便我們調(diào)試和記錄日志, 后者給終端用戶看.

        如果要二選一, __repr__是更好的選擇, 因為如果一個對象沒有__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://systransis.cn/yun/42261.html

相關(guān)文章

  • [譯] 與 Python 無縫集成——基本特殊方法 1

    摘要:這些基本的特殊方法在類中定義中幾乎總是需要的。和方法對于一個對象,有兩種字符串表示方法。這些都和內(nèi)置函數(shù)以及方法緊密結(jié)合。帶有說明符的合理響應(yīng)是返回。 注:原書作者 Steven F. Lott,原書名為 Mastering Object-oriented Python 有許多特殊方法允許類與Python緊密結(jié)合,標(biāo)準(zhǔn)庫參考將其稱之為基本,基礎(chǔ)或本質(zhì)可能是更好的術(shù)語。這些特殊...

    yzd 評論0 收藏0
  • 流暢的python讀書筆記-第一章Python 數(shù)據(jù)模型

    摘要:第一章數(shù)據(jù)類型隱式方法利用快速生成類方法方法通過下標(biāo)找元素自動支持切片操作可迭代方法與如果是一個自定義類的對象,那么會自己去調(diào)用其中由你實現(xiàn)的方法。若返回,則會返回否則返回。一個對象沒有函數(shù),解釋器會用作為替代。 第一章 python數(shù)據(jù)類型 1 隱式方法 利用collections.namedtuple 快速生成類 import collections Card = collec...

    tomener 評論0 收藏0
  • 流暢的python讀書筆記-第一章Python 數(shù)據(jù)模型

    摘要:第一章數(shù)據(jù)類型隱式方法利用快速生成字典方法方法通過下標(biāo)找元素自動支持切片操作可迭代方法與如果是一個自定義類的對象,那么會自己去調(diào)用其中由你實現(xiàn)的方法。若返回,則會返回否則返回。一個對象沒有函數(shù),解釋器會用作為替代。 第一章 python數(shù)據(jù)類型 1 隱式方法 利用collections.namedtuple 快速生成字典 import collections Card = coll...

    FullStackDeveloper 評論0 收藏0
  • python--面向?qū)ο筮M階

    摘要:它首先被程序語言的設(shè)計領(lǐng)域所采用并在和面向?qū)ο蠓矫嫒〉昧顺煽?。面向?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...

    Profeel 評論0 收藏0
  • Python的無縫集成----基本特殊方法.(Mastering Objecting-orient

    摘要:第二章與的無縫集成基本特殊方法筆記中有有一些特殊的方法它們允許我們的類和更好的集成和方法通常方法表示的對象對用戶更加友好這個方法是有對象的方法實現(xiàn)的什么時候重寫跟非集合對象一個不包括其他集合對象的簡單對象這類對象格式通常不會特別復(fù) 第二章 與Python的無縫集成----基本特殊方法.(Mastering Objecting-oriented Python 筆記) python中有有一...

    iamyoung001 評論0 收藏0

發(fā)表評論

0條評論

Flands

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<