成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

python函數(shù)擴展 python 擴展類

昆明java培訓(xùn)學(xué)校告訴你python編程開發(fā)關(guān)于程序擴展操作?

隨著互聯(lián)網(wǎng)的不斷發(fā)展,我們對python編程開發(fā)技術(shù)的學(xué)習(xí)和掌握程度也在不斷的提高。下面我們就通過案例分析來了解和學(xué)習(xí)一下,關(guān)于程序擴展都有哪些操作方法。

創(chuàng)新互聯(lián)致力于成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè),成都網(wǎng)站設(shè)計,集團網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場競爭中脫穎而出。 選擇創(chuàng)新互聯(lián),就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!

必要的概念傳統(tǒng)編程依賴于兩個核心概念:函數(shù)和類。使用這些構(gòu)建塊就可以構(gòu)建出無數(shù)的應(yīng)用程序。但是,當(dāng)我們將應(yīng)用程序遷移到分布式環(huán)境時,這些概念通常會發(fā)生變化。一方面,OpenMPI、Python多進程和ZeroMQ等工具提供了用于發(fā)送和接收消息的低級原語。這些工具非常強大,但它們提供了不同的抽象,因此要使用它們就必須從頭開始重寫單線程應(yīng)用程序。另一方面,我們也有一些特定領(lǐng)域的工具,例如用于模型訓(xùn)練的TensorFlow、用于數(shù)據(jù)處理且支持SQL的Spark,以及用于流式處理的Flink。這些工具提供了更高級別的抽象,如神經(jīng)網(wǎng)絡(luò)、數(shù)據(jù)集和流。但是,因為它們與用于串行編程的抽象不同,所以要使用它們也必須從頭開始重寫應(yīng)用程序。用于分布式計算的工具Ray占據(jù)了一個獨特的中間地帶。它并沒有引入新的概念,而是采用了函數(shù)和類的概念,并將它們轉(zhuǎn)換為分布式的任務(wù)和actor。Ray可以在不做出重大修改的情況下對串行應(yīng)用程序進行并行化。

開始使用Ray

ray.init()命令將啟動所有相關(guān)的Ray進程。在切換到集群時,這是需要更改的行(我們需要傳入集群地址)。java課程培訓(xùn)機構(gòu)發(fā)現(xiàn)這些過程包括:

有很多worker進程并行執(zhí)行Python函數(shù)(大概是每個CPU核心對應(yīng)一個worker)。用于將“任務(wù)”分配給worker(以及其他計算機)的調(diào)度程序進程。任務(wù)是Ray調(diào)度的工作單元,對應(yīng)于一個函數(shù)調(diào)用或方法調(diào)用。

python函數(shù)高級

一、函數(shù)的定義

函數(shù)是指將一組語句的集合通過一個名字(函數(shù)名)封裝起來,想要執(zhí)行這個函數(shù),只需要調(diào)用函數(shù)名即可

特性:

減少重復(fù)代碼

使程序變得可擴展

使程序變得易維護

二、函數(shù)的參數(shù)

2.1、形參和實參數(shù)

形參,調(diào)用時才會存在的值

實慘,實際存在的值

2.2、默認(rèn)參數(shù)

定義:當(dāng)不輸入?yún)?shù)值會有一個默認(rèn)的值,默認(rèn)參數(shù)要放到最后

2.3、 關(guān)鍵參數(shù)

定義: 正常情況下,給函數(shù)傳參數(shù)要安裝順序,不想按順序可以用關(guān)鍵參數(shù),只需要指定參數(shù)名即可,(指定了參數(shù)名的就叫關(guān)鍵參數(shù)),但是要求是關(guān)鍵參數(shù)必須放在位置參數(shù)(以位置順序確定對應(yīng)的參數(shù))之后

2.4、非固定參數(shù)

定義: 如你的函數(shù)在傳入?yún)?shù)時不確定需要傳入多少個參數(shù),就可以使用非固定參數(shù)

# 通過元組形式傳遞

# 通過列表形式傳遞

# 字典形式(通過k,value的方式傳遞)

# 通過變量的方式傳遞

三、函數(shù)的返回值

作用:

返回函數(shù)執(zhí)行結(jié)果,如果沒有設(shè)置,默認(rèn)返回None

終止函數(shù)運行,函數(shù)遇到return終止函數(shù)

四、變量的作用域

全局變量和局部變量

在函數(shù)中定義的變量叫局部變量,在程序中一開始定義的變量叫全局變量

全局變量作用域整個程序,局部變量作用域是定義該變量的函數(shù)

當(dāng)全局變量與局部變量同名是,在定義局部變量的函數(shù)內(nèi),局部變量起作用,其他地方全局變量起作用

同級的局部變量不能互相調(diào)用

想要函數(shù)里邊的變量設(shè)置成全局變量,可用global進行設(shè)置

五、特殊函數(shù)

5.1、嵌套函數(shù)

定義: 嵌套函數(shù)顧名思義就是在函數(shù)里邊再嵌套一層函數(shù)

提示 在嵌套函數(shù)里邊調(diào)用變量是從里往外依次調(diào)用,意思就是如果需要調(diào)用的變量在當(dāng)前層沒有就會去外層去調(diào)用,依次內(nèi)推

匿名函數(shù)

基于Lambda定義的函數(shù)格式為: lambda 參數(shù):函數(shù)體

參數(shù),支持任意參數(shù)。

匿名函數(shù)適用于簡單的業(yè)務(wù)處理,可以快速并簡單的創(chuàng)建函數(shù)。

# 與三元運算結(jié)合

5.3、高階函數(shù)

定義:變量可以指向函數(shù),函數(shù)的參數(shù)可以接收變量,那么一個函數(shù)就可以接收另一個函數(shù)作為參數(shù),這種函數(shù)稱之為高階函數(shù) 只需要滿足一下任意一個條件,即是高階函數(shù)

接收一個或多個函數(shù)作為輸入

return返回另一個函數(shù)

5.4、遞歸函數(shù)

定義:一個函數(shù)可以調(diào)用其他函數(shù),如果一個函數(shù)調(diào)用自己本身,這個函數(shù)就稱為遞歸函數(shù)

在默認(rèn)情況下Python最多能遞歸1000次,(這樣設(shè)計師是為了防止被內(nèi)存被撐死)可以通過sys.setrecursionlimit(1500)進行修改

遞歸實現(xiàn)過程是先一層一層的進,然后在一層一層的出來

必須有一個明確的條件結(jié)束,要不然就是一個死循環(huán)了

每次進入更深層次,問題規(guī)模都應(yīng)該有所減少

遞歸執(zhí)行效率不高,遞歸層次過多會導(dǎo)致站溢出

# 計算4的階乘 4x3x2x1

# 打印數(shù)字從1-100

5.5、閉包現(xiàn)象

定義:內(nèi)層函數(shù)調(diào)用外層函數(shù)的變量,并且內(nèi)存函數(shù)被返回到外邊去了

閉包的意義:返回的函數(shù)對象,不僅僅是一個函數(shù)對象,在該函數(shù)外還包裹了一層作用域,這使得,該函數(shù)無論在何處調(diào)用,優(yōu)先使用自己外層包裹的作用域

python常用函數(shù)包有哪些?

一些python常用函數(shù)包:

1、Urllib3

Urllib3是一個 Python 的 HTTP 客戶端,它擁有 Python 標(biāo)準(zhǔn)庫中缺少的許多功能:

線程安全

連接池

客戶端 SSL/TLS 驗證

使用分段編碼上傳文件

用來重試請求和處理 HTTP 重定向的助手

支持 gzip 和 deflate 編碼

HTTP 和 SOCKS 的代理支持

2、Six

six 是一個是 Python 2 和 3 的兼容性庫。這個項目旨在支持可同時運行在 Python 2 和 3 上的代碼庫。它提供了許多可簡化 Python 2 和 3 之間語法差異的函數(shù)。

3、botocore、boto3、s3transfer、awscli

Botocore是 AWS 的底層接口。Botocore是 Boto3 庫(#22)的基礎(chǔ),后者讓你可以使用 Amazon S3 和 Amazon EC2 一類的服務(wù)。Botocore 還是 AWS-CLI 的基礎(chǔ),后者為 AWS 提供統(tǒng)一的命令行界面。

S3transfer(#7)是用于管理 Amazon S3 傳輸?shù)?Python 庫。它正在積極開發(fā)中,其介紹頁面不推薦人們現(xiàn)在使用,或者至少等版本固定下來再用,因為其 API 可能發(fā)生變化,在次要版本之間都可能更改。Boto3、AWS-CLI和其他許多項目都依賴s3transfer。

4、Pip

pip是“Pip Installs Packages”的首字母遞歸縮寫。

pip很容易使用。要安裝一個包只需pip install package name即可,而刪除包只需pip uninstall package name即可。

最大優(yōu)點之一是它可以獲取包列表,通常以requirements.txt文件的形式獲取。該文件能選擇包含所需版本的詳細(xì)規(guī)范。大多數(shù) Python 項目都包含這樣的文件。

如果結(jié)合使用pip與virtualenv(列表中的 #57),就可以創(chuàng)建可預(yù)測的隔離環(huán)境,同時不會干擾底層系統(tǒng),反之亦然。

5、Python-dateutil

python-dateutil模塊提供了對標(biāo)準(zhǔn)datetime模塊的強大擴展。我的經(jīng)驗是,常規(guī)的Python datetime缺少哪些功能,python-dateutil就能補足那一塊。

6、Requests

Requests建立在我們的 #1 庫——urllib3基礎(chǔ)上。它讓 Web 請求變得非常簡單。相比urllib3來說,很多人更喜歡這個包。而且使用它的最終用戶可能也比urllib3更多。后者更偏底層,并且考慮到它對內(nèi)部的控制級別,它一般是作為其他項目的依賴項。

7、Certifi

近年來,幾乎所有網(wǎng)站都轉(zhuǎn)向 SSL,你可以通過地址欄中的小鎖符號來識別它。加了小鎖意味著與該站點的通信是安全和加密的,能防止竊聽行為。

8、Idna

根據(jù)其 PyPI 頁面,idna提供了“對 RFC5891 中指定的應(yīng)用程序中國際化域名(IDNA)協(xié)議的支持?!?/p>

IDNA的核心是兩個函數(shù):ToASCII和ToUnicode。ToASCII會將國際 Unicode 域轉(zhuǎn)換為 ASCII 字符串。ToUnicode則逆轉(zhuǎn)該過程。在IDNA包中,這些函數(shù)稱為idna.encode()和idna.decode()

9、PyYAML

YAML是一種數(shù)據(jù)序列化格式。它的設(shè)計宗旨是讓人類和計算機都能很容易地閱讀代碼——人類很容易讀寫它的內(nèi)容,計算機也可以解析它。

PyYAML是 Python 的YAML解析器和發(fā)射器,這意味著它可以讀寫YAML。它會把任何 Python 對象寫成YAML:列表、字典,甚至是類實例都包括在內(nèi)。

10、Pyasn1

像上面的IDNA一樣,這個項目也非常有用:

ASN.1 類型和 DER/BER/CER 編碼(X.208)的純 Python 實現(xiàn)

所幸這個已有數(shù)十年歷史的標(biāo)準(zhǔn)有很多信息可用。ASN.1是 Abstract Syntax Notation One 的縮寫,它就像是數(shù)據(jù)序列化的教父。它來自電信行業(yè)。也許你知道協(xié)議緩沖區(qū)或 Apache Thrift?這就是它們的 1984 年版本。

11、Docutils

Docutils是一個模塊化系統(tǒng),用來將純文本文檔處理為很多有用的格式,例如 HTML、XML 和 LaTeX 等。Docutils能讀取reStructuredText格式的純文本文檔,這種格式是類似于 MarkDown 的易讀標(biāo)記語法。

12、Chardet

你可以用chardet模塊來檢測文件或數(shù)據(jù)流的字符集。比如說,需要分析大量隨機文本時,這會很有用。但你也可以在處理遠(yuǎn)程下載的數(shù)據(jù),但不知道用的是什么字符集時使用它。

13、RSA

rsa包是一個純 Python 的 RSA 實現(xiàn)。它支持:

加密和解密

簽名和驗證簽名

根據(jù) PKCS#1 1.5 版生成密鑰

它既可以用作 Python 庫,也能在命令行中使用。

14、Jmespath

JMESPath,發(fā)音為“James path”,使 Python 中的 JSON 更容易使用。它允許你聲明性地指定如何從 JSON 文檔中提取元素。

15、Setuptools

它是用于創(chuàng)建 Python 包的工具。不過,其文檔很糟糕。它沒有清晰描述它的用途,并且文檔中包含無效鏈接。最好的信息源是這個站點,特別是這個創(chuàng)建 Python 包的指南。

16、Pytz

像dateutils一樣,這個庫可幫助你處理日期和時間。有時候,時區(qū)處理起來可能很麻煩。幸好有這樣的包,可以讓事情變得簡單些。

17、Futures

從 Python 3.2 開始,python 提供current.futures模塊,可幫助你實現(xiàn)異步執(zhí)行。futures 包是該庫適用于 Python 2 的 backport。它不適用于 Python3 用戶,因為 Python 3 原生提供了該模塊。

18、Colorama

使用 Colorama,你可以為終端添加一些顏色:

更多Python知識請關(guān)注Python自學(xué)網(wǎng)

分享名稱:python函數(shù)擴展 python 擴展類
瀏覽地址:http://jinyejixie.com/article44/hpdgee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、用戶體驗域名注冊、云服務(wù)器、網(wǎng)站導(dǎo)航、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
彭州市| 台北县| 申扎县| 姜堰市| 米林县| 仪征市| 鹿泉市| 宝清县| 花莲县| 镇宁| 紫阳县| 伊宁县| 林西县| 贵南县| 南涧| 宁津县| 拜泉县| 榆林市| 廊坊市| 清丰县| 西和县| 武强县| 昭觉县| 辽阳市| 红河县| 延川县| 兴安盟| 昭平县| 梧州市| 綦江县| 万州区| 札达县| 渝北区| 衡阳县| 广德县| 集贤县| 河津市| 芒康县| 封丘县| 明星| 阜城县|