婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 總結Python常用的魔法方法

總結Python常用的魔法方法

熱門標簽:河北防封卡電銷卡 400電話辦理哪種 手機網頁嵌入地圖標注位置 應電話機器人打電話違法嗎 開封語音外呼系統代理商 開封自動外呼系統怎么收費 電銷機器人的風險 天津電話機器人公司 地圖標注線上如何操作

一、算數運算符的魔法方法

  • python2.2以后,對類和類型進行了統一,做法就是講int()、float()、str()、list()、tuple()這些BIF轉換為工廠函數(類對象)
  • 給出以下算數運算符對應的魔法方法,前面和后面都被雙下劃線包尾說明是魔法方法
運算符 對應的魔法方法 中文注釋
+ __ add__(self, other) 加法
- __ sub__(self, other) 減法
* __ mul__(self, other) 乘法
/ __ truediv__(self, other) 真除法
// __ floordiv__(self, other) 整數除法
% __ mod__(self, other) 取余除法
divmod(a, b) __ divmod__(self, other) 把除數和余數運算結果結合,divmod(a,b)返回值是一個元組(a//b, a%b)
** __ pow__(self, other[,modulo]) self的other次方再對modulo取余
__ lshift__(self, other) 按位左移
>> __ rshift__(self, other) 按位右移
__ and__(self, other) 按位與操作
^ __ xor__(self, other) 按位異或操作(同為0,異為1)
__ or__(self, other) 按位或操作(有1則1)
  • eg:
>>> type(len)
class 'builtin_function_or_method'>            #普通的BIF
>>> type(int)
class 'type'>             #工廠函數(類對象),當調用它們的時候,其實就是創建了一個相應的實例對象
>>> type(dir)
class 'builtin_function_or_method'>
>>> type(list)
class 'type'>

>>> a = int('123')        #創建一個相應的實例對象a
>>> b = int('345')
>>> a + b              #python在兩個對象進行相加操作
468
  • eg:舉個例子,下面定義一個比較特立獨行的類:

繼承int,并重寫__add__方法

>>> class New_int(int):
    def __add__(self,other):
        return int.__sub__(self,other)
    def __sub__(self,other):
        return int.__add__(self,other)

    
>>> a = New_int(3)
>>> b = New_int(5)
>>> a + b    #兩個對象相加,觸發 __add__(self,other)方法
-2
>>> a - b
8
>>>

實例2:錯誤寫法,會造成無限遞歸
>>> class New_int(int):
    def __add__(self,other):
        return (self + other)  
    def __sub__(self,other):
        return (self - other)


>>> class New_int(int):
    def __add__(self,other):
        return (int(self) + int(other))       #將self與other強制轉換為整型,所以不會出現兩個對象相加觸發__add__()方法
    def __sub__(self,other):
        return (int(self) - int(other))

    
>>> a = New_int(3)
>>> b = New_int(5)
>>> a + b
8

二、反運算相關的魔法方法

  • 反運算相關的魔法方法
魔法方法 定義
__ radd__(self, other) 定義加法的行為:+(當左操作數不支持相應的操作時被調用)
__ rsub__(self, other) 定義減法的行為:-(當左操作數不支持相應的操作時被調用)
__ rmul__(self, other) 定義乘法的行為:*(當左操作數不支持相應的操作時被調用)
__ rtruediv__(self, other) 定義真除法的行為:/(當左操作數不支持相應的操作時被調用)
__ rfloordiv__(self, other) 定義整數除法的行為://(當左操作數不支持相應的操作時被調用)
__ rmod__(self, other) 定義取模算法的行為:%(當左操作數不支持相應的操作時被調用)
__ rdivmod__(self, other) 定義當被divmod()調用時的行為(當左操作數不支持相應的操作時被調用)
__ rpow__(self, other) 定義當被power()調用或**運算時的行為(當左操作數不支持相應的操作時被調用)
__ rlshift__(self, other) 定義按位左移位的行為:(當左操作數不支持相應的操作時被調用)
__ rrshift__(self, other) 定義按位右移位的行為:>>(當左操作數不支持相應的操作時被調用)
__ rand__(self, other) 定義按位與操作的行為:(當左操作數不支持相應的操作時被調用)
__ rxor__(self, other) 定義按位異或操作的行為:^(當左操作數不支持相應的操作時被調用)
__ ror__(self, other) 定義按位或操作的行為:丨(當左操作數不支持相應的操作時被調用)
>>> class int(int):
    def __add__(self,other):
        return int.__sub__(self,other)

    
>>> a = int(3)
>>> b = int(2)
>>> a + b
1

反運算與算術運算符的不同之處是,反運算多了一個'r',例如 __add__()的反運算對應為 __radd__()

>>> a + b

這里a是加數,b是被加數,如果a對象的__add__()方法沒有實現或者不支持相應的操作,那么python就會自動調用b的__radd__()方法

實例:

>>> class Nint(int):
    def __radd__(self,other):
        return int.__sub__(self,other)

    
>>> a = Nint(5)
>>> b = Nint(3)
>>> a + b      #由于a對象默認有__add__()方法,所以b的__radd__()沒有執行
8

實例2:

>>> class Nint(int):
    def __radd__(self,other):
        return int.__sub__(self,other)

    
>>> b = Nint(5)
>>> 3 + b         #由于3無__add__()方法,所以執行b的反運算__radd__(self,other)方法,其中self是b對象
2

eg:注:在重寫反運算魔法方法時,一定要注意順序問題。得到的應該是個負數,所以順序改變下。

 

三、增量賦值運算

增量賦值運算的魔法方法

魔法方法 定義
__ iadd__(self, other) 定義賦值加法的行為:+=
__ isub__(self, other) 定義賦值減法的行為:-=
__ imul__(self, other) 定義賦值乘法的行為:*=
__ itruediv__(self, other) 定義賦值真除法的行為:/=
__ ifloordiv__(self, other) 定義賦值整數除法的行為://=
__ imod__(self, other) 定義賦值取模算法的行為:%=
__ ipow__(self, other) 定義賦值冪運算的行為:**=
__ ilshift__(self, other) 定義賦值按位左移位的行為:=
__ irshift__(self, other) 定義賦值按位右移位的行為:>>=
__ iand__(self, other) 定義賦值按位與操作的行為:=
__ ixor__(self, other) 定義賦值按位異或操作的行為:^=
__ ior__(self, other) 定義賦值按位或操作的行為:丨=
- -

四、一元操作符

  • 一元操作符的魔法方法
魔法方法 定義
__ neg__(self) 定義正號的行為:+x
__ pos__(self) 定義負號的行為:-x
__ abs__(self) 定義當被abs()調用時的行為
__ invert__(self) 定義按位求反的行為:~x

到此這篇關于總結Python常用的魔法方法的文章就介紹到這了,更多相關Python魔法方法內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解Python魔法方法之描述符類
  • Python面向對象魔法方法和單例模塊代碼實例
  • Python魔法方法 容器部方法詳解
  • Python類中的魔法方法之 __slots__原理解析
  • Python魔法方法功能與用法簡介
  • Python魔法方法詳解
  • python魔法方法-屬性訪問控制詳解
  • python魔法方法-屬性轉換和類的表示詳解
  • python魔法方法-自定義序列詳解
  • Python中的魔法方法深入理解
  • 詳解Python常用的魔法方法

標簽:常州 駐馬店 宿遷 蘭州 江蘇 山東 成都 六盤水

巨人網絡通訊聲明:本文標題《總結Python常用的魔法方法》,本文關鍵詞  總結,Python,常用的,常,用的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《總結Python常用的魔法方法》相關的同類信息!
  • 本頁收集關于總結Python常用的魔法方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲美女屁股眼交3| 91麻豆精品国产综合久久久久久| 国产日韩欧美一区二区三区综合| 一区二区三区欧美日| 国产69精品一区二区亚洲孕妇| 一本一道波多野结衣一区二区| 国产亚洲精品aa午夜观看| 日精品一区二区| 91麻豆精品国产自产在线观看一区| 婷婷中文字幕综合| 日本精品一级二级| 亚洲与欧洲av电影| 91精品国产91综合久久蜜臀| 亚洲国产精品一区二区久久| 在线91免费看| 国产 欧美在线| 亚洲免费观看在线视频| 欧美久久一二区| 久久97超碰色| 欧美激情一区二区三区四区| 色综合久久中文字幕综合网 | 老司机精品视频导航| 中文字幕乱码日本亚洲一区二区 | 色综合久久久久综合体桃花网| 亚洲欧美另类久久久精品2019| 91丝袜美腿高跟国产极品老师 | 在线播放欧美女士性生活| 午夜久久久久久| 国产亚洲欧美中文| 欧美日韩成人综合在线一区二区| 国产精品久久久久影视| 色偷偷一区二区三区| 日韩av电影免费观看高清完整版| 国产精品国产三级国产aⅴ原创| 91精品国产手机| 欧美色中文字幕| 另类人妖一区二区av| 亚洲永久免费av| 亚洲与欧洲av电影| 亚洲一区二区三区四区五区黄| 欧美激情一区在线| 日本一区二区三区在线观看| 日韩一区二区三区免费观看| 色婷婷av一区二区三区gif| 久久 天天综合| 捆绑调教美女网站视频一区| 水蜜桃久久夜色精品一区的特点| 中文字幕精品一区二区精品绿巨人 | 欧美日韩一区二区三区视频| 成人a免费在线看| 国产美女在线精品| 99久久久免费精品国产一区二区| 成人做爰69片免费看网站| 国产高清精品久久久久| 一本久久a久久精品亚洲| 欧洲一区二区三区免费视频| 欧美午夜理伦三级在线观看| 欧美精品九九99久久| 久久久精品2019中文字幕之3| 中文字幕亚洲不卡| 蜜臀久久久99精品久久久久久| 久久99这里只有精品| 一本大道久久a久久综合| 日韩精品在线看片z| 亚洲色图都市小说| 韩国欧美一区二区| 91亚洲资源网| 国产女人aaa级久久久级| 秋霞电影一区二区| 国产在线一区二区| 欧美综合欧美视频| 91精品欧美福利在线观看| 91精品国产aⅴ一区二区| 国产午夜精品一区二区三区四区| 久久久久久久一区| 中文字幕av一区二区三区| 欧美韩日一区二区三区四区| 国产日韩欧美一区二区三区乱码| 国产精品欧美一区二区三区| 视频一区欧美日韩| 成人免费毛片a| 欧美精品xxxxbbbb| 亚洲欧洲成人自拍| 精品午夜一区二区三区在线观看| 国模一区二区三区白浆| 欧日韩精品视频| 亚洲国产精华液网站w| 午夜精品久久久久久久久| jvid福利写真一区二区三区| 精品免费99久久| 午夜伊人狠狠久久| 色综合色狠狠综合色| 久久久99精品免费观看| 久久精品国产一区二区| 91精品视频网| 精彩视频一区二区三区 | 亚洲人成亚洲人成在线观看图片| 国产精品免费丝袜| 极品销魂美女一区二区三区| 欧美放荡的少妇| 久久er99精品| 日韩精品中文字幕一区| 国产一区二区三区视频在线播放| 国产一区二区导航在线播放| 日韩欧美亚洲一区二区| 亚洲va国产va欧美va观看| 欧美猛男超大videosgay| 国产精品久线观看视频| 国产精品中文字幕日韩精品 | 欧美日韩一区二区三区免费看| 一个色妞综合视频在线观看| 99久久综合色| 亚洲最大的成人av| 欧美最新大片在线看| 亚洲国产一区二区视频| 在线成人午夜影院| 国产做a爰片久久毛片| 久久一区二区视频| 丁香激情综合五月| 一区二区三区久久| 精品国产乱码久久久久久图片| 成人av网站免费| 日韩黄色免费电影| 日韩美女精品在线| 久久久综合网站| 国产丶欧美丶日本不卡视频| 国产精品乱人伦| 蜜乳av一区二区| 久久久精品2019中文字幕之3| 日韩制服丝袜av| 国产精品国产三级国产aⅴ入口 | www.亚洲在线| 日韩黄色一级片| 亚洲一区在线观看网站| 日韩精品中文字幕一区二区三区 | 国产成a人无v码亚洲福利| 亚洲成人一二三| 亚洲精品一区二区三区福利| 在线观看日韩高清av| 亚洲va欧美va天堂v国产综合| 亚洲国产日产av| 欧美一级片免费看| 欧美一卡2卡3卡4卡| 精品999久久久| 欧美大胆人体bbbb| 久久久综合网站| 久久久久国产免费免费| 91麻豆精品国产91久久久更新时间| 久久精品国产在热久久| 久久精工是国产品牌吗| 免播放器亚洲一区| 韩国精品免费视频| bt欧美亚洲午夜电影天堂| 一本色道亚洲精品aⅴ| 欧美一区二区三区婷婷月色| 色婷婷亚洲一区二区三区| 国产精品夜夜嗨| 一本久久综合亚洲鲁鲁五月天| 欧美性猛交xxxx黑人交| 欧美午夜理伦三级在线观看| 欧美日韩aaa| 久久免费国产精品| 中文字幕av一区二区三区免费看 | 日本va欧美va欧美va精品| 国产网红主播福利一区二区| 在线电影国产精品| 国产午夜亚洲精品羞羞网站| 亚洲理论在线观看| 麻豆传媒一区二区三区| 国产黄色成人av| 色偷偷成人一区二区三区91| 欧美一区2区视频在线观看| 亚洲欧洲精品成人久久奇米网| 蜜桃av噜噜一区二区三区小说| 顶级嫩模精品视频在线看| 岛国一区二区在线观看| 日韩欧美中文字幕制服| 尤物在线观看一区| 国产一区二区美女诱惑| 欧美日韩精品一区二区三区蜜桃 | 成人国产精品免费网站| 日韩女优电影在线观看| 一区二区成人在线视频| 国产不卡在线播放| 精品国产伦一区二区三区观看体验 | 国产偷国产偷精品高清尤物| 亚洲麻豆国产自偷在线| 国产精品538一区二区在线| 欧美影院一区二区| 午夜精品一区二区三区电影天堂| 99久久久久免费精品国产| 欧美国产日韩一二三区| 99免费精品视频| 亚洲欧美日韩一区二区| 97久久精品人人爽人人爽蜜臀| 色94色欧美sute亚洲线路二| 椎名由奈av一区二区三区| 一区二区三区自拍| 在线不卡欧美精品一区二区三区| 洋洋成人永久网站入口|