最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python面向?qū)ο缶幊讨?lèi)的運(yùn)算

 更新時(shí)間:2021年11月01日 15:02:16   作者:一碗周  
這篇文章主要介紹了Python面向?qū)ο缶幊讨?lèi)的運(yùn)算,運(yùn)算即Operation是操作邏輯的抽象,運(yùn)算體現(xiàn)一種操作邏輯,在廣義角度來(lái)說(shuō)任何程序都是一種運(yùn)算,接下來(lái)看看文章具體內(nèi)容及各種舉例說(shuō)明,希望對(duì)你有所幫助

1、運(yùn)算概念的理解

運(yùn)算(Operation)是操作邏輯的抽象

  • 運(yùn)算體現(xiàn)一種操作邏輯,在廣義角度來(lái)說(shuō)任何程序都是一種運(yùn)算
  • Python解釋器通過(guò)保留方法預(yù)留了一批運(yùn)算的接口,需要重載
  • 保留方法一般對(duì)應(yīng)運(yùn)算符,Python中運(yùn)算體現(xiàn)為運(yùn)算符的重載
  • 運(yùn)算本質(zhì)上體現(xiàn)了交互關(guān)系、包含關(guān)系和常規(guī)的操作關(guān)系

運(yùn)算重載的限制

  • 不能重載Python語(yǔ)言內(nèi)置類(lèi)型的運(yùn)算符
  • 不能新建運(yùn)算符,只能通過(guò)重載完成
  • is,and,not,or不能被重載

2、運(yùn)算符的重載

2.1 算術(shù)運(yùn)算符

一元運(yùn)算符:+、-、~
二元運(yùn)算符:+、-、*、/、//、%divmod()  、 pow() **、<<>>、&、^、|

保留方法 對(duì)應(yīng)操作 描述
.__neg__(self) -obj 定義對(duì)象取負(fù)的運(yùn)算邏輯
.__pos__(self) +obj 定義對(duì)象取正的運(yùn)算邏輯
.__abs__(self) abs(obj) 定義對(duì)象絕對(duì)值的運(yùn)算邏輯
.__invert__(self) ~obj 定義對(duì)象取反的運(yùn)算邏輯
.__add__(self, other) obj + other 定義了兩個(gè)對(duì)象加法的運(yùn)算邏輯
.__sub__(self, other) obj - other 定義了兩個(gè)對(duì)象減法的運(yùn)算邏輯
.__mul__(self, other) obj * other 定義了兩個(gè)對(duì)象乘法的運(yùn)算邏輯
.__truediv__(self, other) obj / other 定義了兩個(gè)對(duì)象除法的運(yùn)算邏輯
.__floordiv__(self, other) obj // other 定義了兩個(gè)對(duì)象整數(shù)除的運(yùn)算邏輯
.__mod__(self, other) obj % other 定義了兩個(gè)對(duì)象模的運(yùn)算邏輯
.__divmod__(self, other) divmod(obj, other) 定義了兩個(gè)對(duì)象除模的運(yùn)算邏輯
.__pow__(self, other) obj ** other 定義對(duì)象冪的運(yùn)算邏輯
.__lshift__(self, other) obj << other 定義對(duì)象左移的運(yùn)算邏輯
.__rshift__(self, other) obj >> other 定義對(duì)象右移的運(yùn)算邏輯
.__and__(self, other) obj & other 定義兩個(gè)對(duì)象位于運(yùn)算邏輯
.__xor__(self, other) obj ^ other 定義兩個(gè)對(duì)象位異或的運(yùn)算邏輯
.__or__(self, other) `obj other`

2.2 比較運(yùn)算符

比較運(yùn)算符:<、<=、==、!=、>、>=

保留方法 對(duì)應(yīng)操作
.__lt__(self, other) obj < other
.__le__(self, other) obj <= other
.__eq__(self, other) obj == other
.__be__(self, other) obj != other
.__gt__(self, other) obj > other
.__ge__(self, other) obj >= other

 兩個(gè)對(duì)象比較操作的運(yùn)算重載

2.3 成員運(yùn)算

成員獲?。?/strong>[]、def、 .eversed()
成員判斷:in

保留方法 對(duì)應(yīng)操作 描述
.__getitem__(self, key) obj[k] 定義獲取對(duì)象中序號(hào)K元素的運(yùn)算邏輯,K為整數(shù)
.__setitem__(self, key, v) obj[k] = v 定義賦值對(duì)象中序號(hào)K元素的運(yùn)算邏輯
.__delitem__(self, key) del obj[k] 定義刪除對(duì)象中序號(hào)K元素的運(yùn)算邏輯
.__reversed__(self) obj.reversed() 定義對(duì)象逆序的運(yùn)算邏輯
.__contains__(self, item) item in obj 定義in操作符對(duì)應(yīng)的運(yùn)算邏輯

2.4 其他運(yùn)算

Python內(nèi)置函數(shù):rep(),str(),len(),int(),flaot,complex(),round(),bytes(),bool(),format(),.format(常用方法)

保留方法 對(duì)應(yīng)操作 描述
__repr__(self) repr(obj) 定義對(duì)象可打印字符串的運(yùn)算邏輯
__str__(self) str(obj) 定義對(duì)象字符串轉(zhuǎn)換的運(yùn)算邏輯
__len__(self) len(obj) 定義對(duì)象長(zhǎng)度操作的運(yùn)算邏輯
__int__(self) int(obj) 定義對(duì)象整數(shù)轉(zhuǎn)換的運(yùn)算邏輯
__float__(self) float(obj) 定義對(duì)象浮點(diǎn)數(shù)轉(zhuǎn)換的運(yùn)算邏輯
__complex__(self) complex(obj) 定義對(duì)象復(fù)數(shù)轉(zhuǎn)換的運(yùn)算邏輯
__round__(self) round(obj) 定義對(duì)象四舍五入的運(yùn)算邏輯
__bytes__(self) bytes(obj) 定義對(duì)象字節(jié)串轉(zhuǎn)換的運(yùn)算邏輯
__bool__(self) bool(obj) 定義對(duì)象布爾運(yùn)算的運(yùn)算邏輯
.__format__(self, format_spec) obj.format() format(obj) 定義對(duì)象格式化輸出的運(yùn)算邏輯

3、Python類(lèi)的多態(tài)

多態(tài) _(Polymorphism)_是針對(duì)方法,體現(xiàn)方法靈活性的多態(tài);簡(jiǎn)單的說(shuō),他包含兩部分

參數(shù)類(lèi)型的多態(tài):一個(gè)方法能夠處理多個(gè)類(lèi)型的能力

Python的函數(shù)/方法沒(méi)有類(lèi)型聲明限制,天然支持參數(shù)類(lèi)型的多態(tài)性

Python編程理念在于:文檔約束,而非語(yǔ)法約束

對(duì)不同參數(shù)類(lèi)型的區(qū)分以及功能,需要有程序員完成

參數(shù)形式的多態(tài):一個(gè)方法能夠接受多個(gè)參數(shù)的能力

Python的函數(shù)/方法可以支持可變參數(shù),支持參數(shù)形式的多態(tài)性

Python的類(lèi)方法也是函數(shù),函數(shù)的各種定義方式均有效

對(duì)不同參數(shù)個(gè)數(shù)以及默認(rèn)值的確定,需要由程序員完成

多態(tài)是OOP的一個(gè)傳統(tǒng)概念,Python天然支持多態(tài),不需要特殊語(yǔ)法,示例代碼如下所示:

import abc
class Animal(metaclass=abc.ABCMeta): #同一類(lèi)事物:動(dòng)物
    @abc.abstractmethod
    def talk(self):
        pass

class Cat(Animal): #動(dòng)物的形態(tài)之一:貓
    def talk(self):
        print('say miaomiao')

class Dog(Animal): #動(dòng)物的形態(tài)之二:狗
    def talk(self):
        print('say wangwang')

class Pig(Animal): #動(dòng)物的形態(tài)之三:豬
    def talk(self):
        print('say aoao')

到此這篇關(guān)于Python面向?qū)ο缶幊讨?lèi)的運(yùn)算的文章就介紹到這了,更多相關(guān)Python類(lèi)的運(yùn)算內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Python的EasyGUI學(xué)習(xí)實(shí)踐

    基于Python的EasyGUI學(xué)習(xí)實(shí)踐

    這篇文章主要介紹了基于Python的EasyGUI學(xué)習(xí)實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Pytorch如何指定device(cuda or cpu)

    Pytorch如何指定device(cuda or cpu)

    這篇文章主要介紹了Pytorch如何指定device(cuda or cpu)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • python 基于selenium實(shí)現(xiàn)鼠標(biāo)拖拽功能

    python 基于selenium實(shí)現(xiàn)鼠標(biāo)拖拽功能

    這篇文章主要介紹了python 基于selenium實(shí)現(xiàn)鼠標(biāo)拖拽功能的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • 如何將Python代碼轉(zhuǎn)化為可執(zhí)行的程序

    如何將Python代碼轉(zhuǎn)化為可執(zhí)行的程序

    在Python中,將代碼轉(zhuǎn)成可以執(zhí)行的程序需要安裝庫(kù)pyinstaller,如果是Windows用戶,打開(kāi)Anaconda?Prompt輸入相對(duì)應(yīng)代碼,下面小編給大家詳細(xì)講解如何將Python代碼轉(zhuǎn)化為可執(zhí)行的程序,感興趣的朋友一起看看吧
    2024-03-03
  • pyqt QPlainTextEdit 中捕獲回車(chē)的示例代碼

    pyqt QPlainTextEdit 中捕獲回車(chē)的示例代碼

    在PyQt的QPlainTextEdit控件中,可以通過(guò)重寫(xiě)keyPressEvent()函數(shù)來(lái)捕獲鍵盤(pán)事件,這篇文章主要介紹了pyqt QPlainTextEdit 中捕獲回車(chē),需要的朋友可以參考下
    2024-03-03
  • Python Scapy隨心所欲研究TCP協(xié)議棧

    Python Scapy隨心所欲研究TCP協(xié)議棧

    今天小編就為大家分享一篇關(guān)于Python Scapy隨心所欲研究TCP協(xié)議棧,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-11-11
  • 詳解Python中生成隨機(jī)數(shù)據(jù)的示例詳解

    詳解Python中生成隨機(jī)數(shù)據(jù)的示例詳解

    在日常工作編程中存在著各種隨機(jī)事件,同樣在編程中生成隨機(jī)數(shù)字的時(shí)候也是一樣。每當(dāng)在?Python?中生成隨機(jī)數(shù)據(jù)、字符串或數(shù)字時(shí),最好至少大致了解這些數(shù)據(jù)是如何生成的。所以本文將詳細(xì)為大家講解一下Python是如何生成隨機(jī)數(shù)據(jù),需要的可以參考一下
    2022-04-04
  • Pytorch 使用opnecv讀入圖像由HWC轉(zhuǎn)為BCHW格式方式

    Pytorch 使用opnecv讀入圖像由HWC轉(zhuǎn)為BCHW格式方式

    這篇文章主要介紹了Pytorch 使用opnecv讀入圖像由HWC轉(zhuǎn)為BCHW格式方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Python %r和%s區(qū)別代碼實(shí)例解析

    Python %r和%s區(qū)別代碼實(shí)例解析

    這篇文章主要介紹了Python %r和%s區(qū)別代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 詳解如何使用Python操作MySQL的各種功能

    詳解如何使用Python操作MySQL的各種功能

    當(dāng)今互聯(lián)網(wǎng)時(shí)代,數(shù)據(jù)處理已經(jīng)成為了一個(gè)非常重要的任務(wù)。MySQL作為一款開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù),被廣泛應(yīng)用于各種場(chǎng)景。本文將介紹如何使用Python操作MySQL的各種功能,以及一些高級(jí)用法,希望對(duì)大家有所幫助
    2023-04-04

最新評(píng)論

石楼县| 兴仁县| 通河县| 宁夏| 黑河市| 清镇市| 长宁区| 临海市| 澄江县| 阿图什市| 鲁甸县| 大姚县| 大冶市| 山阴县| 阿坝| 大田县| 车险| 沾益县| 望江县| 长阳| 仪陇县| 怀远县| 桐柏县| 东阿县| 石景山区| 博湖县| 江山市| 弥勒县| 怀远县| 拉孜县| 辽阳市| 略阳县| 任丘市| 西林县| 大化| 通许县| 黄大仙区| 公主岭市| 定安县| 镇安县| 宣武区|