從面向?qū)ο缶幊痰綌?shù)據(jù)結(jié)構(gòu),這些 Python/ target=_blank class=infotextkey>Python 技巧將幫助您開發(fā)更有效和高效的代碼。
Python 是一種多功能的編程語言,近年來越來越受歡迎。如果您希望以程序員的身份提升自己的游戲水平,那么您需要熟悉本文中介紹的一些高級(jí)技術(shù)。
這六個(gè) Python 技巧將幫助您開發(fā)更有效和高效的代碼,從面向?qū)ο蟮木幊痰綌?shù)據(jù)結(jié)構(gòu)。這些 Python技巧將幫助您開發(fā)更有效和高效的代碼。
1. 給 Python 添加機(jī)器學(xué)習(xí)能力
為了在代碼中實(shí)現(xiàn) ML,您需要研究的兩個(gè)值得注意的庫示例是 TF 和 Pytorch——可以說是希望構(gòu)建復(fù)雜強(qiáng)化學(xué)習(xí)應(yīng)用程序的開發(fā)人員的首選。這兩個(gè)庫都提供快速的訓(xùn)練速度、模塊化和易于使用的 API。
2. lambda
Lambda是每個(gè)程序員都應(yīng)該知道的強(qiáng)大工具。它們通過將工作從函數(shù)調(diào)用中解脫出來,幫助您編寫更簡(jiǎn)潔的代碼。
它們?cè)?Python 中定義如下: def lambda(args):...return result
這允許您通過從函數(shù)調(diào)用中提取工作來編寫更短的代碼。例如,以下以 lambda 形式編寫的代碼將等效于以下以函數(shù)形式編寫的代碼: def square(x):return x*x
這段更短的代碼更容易閱讀,也不那么混亂。它還可以輕松更改函數(shù)的行為,而無需更新調(diào)用它的所有代碼。
例如,您可以編寫一個(gè)計(jì)算數(shù)字平方并返回該值作為結(jié)果的 lambda。然后,您可以創(chuàng)建一個(gè)以數(shù)字為參數(shù)并計(jì)算該數(shù)字平方的新函數(shù)。
您所要做的就是將源代碼中正方形的聲明更改為使用 lambda 而不是函數(shù)。
3. 函數(shù)注解
為了提高 Python 代碼的可讀性和可維護(hù)性,您可以做的最重要的事情之一就是使用函數(shù)注釋。函數(shù)注釋是一種告訴 Python 解釋器你正在編寫什么類型的函數(shù)的方法,它們可以使你的代碼更容易理解。
例如,您可以使用 @return 注釋告訴 Python 函數(shù)將返回一個(gè)值。這個(gè)注解告訴 Python 函數(shù)應(yīng)該返回一些 int 類型的東西。如果你不使用注解,Python 假定函數(shù)不會(huì)返回值。
另一個(gè)常見的注解是@param 注解。這個(gè)注解告訴 Python 哪些變量將作為參數(shù)傳遞給函數(shù)。你也可以使用這個(gè)注解來指定一個(gè)函數(shù)應(yīng)該接收多少個(gè)參數(shù)。
function my_function(a, b) @return int def my_other_function(a, b, c) @param int 您還可以使用注解來指示應(yīng)該從另一個(gè)文件調(diào)用一個(gè)函數(shù)。例如,您可能想從另一個(gè)模塊調(diào)用一個(gè)函數(shù)。您可以使用 import 語句將模塊包含在腳本文件中。
4. 自定義 Pprint 模塊
Python 有一個(gè)非常棒的工具,叫做 Pprint 模塊。該模塊允許您以人類可讀的格式顯示 Python 對(duì)象。這在調(diào)試程序時(shí)非常有用。
假設(shè)您有一個(gè)函數(shù),它接受一個(gè)名為 a 的輸入?yún)?shù)。您可以使用 Pprint 模塊在括號(hào)內(nèi)顯示 a.type 的內(nèi)容。這是一個(gè)例子:
>>> import pprint >>> def show_a(a): ... print("Insideshow_a() : {0}".format(a.type)) ... Insideshow_a() : object
5. 創(chuàng)建自定義類型
Python 最強(qiáng)大的特性之一是它能夠創(chuàng)建自定義類型。這允許您創(chuàng)建自己的對(duì)象類型,然后可以在您的程序中使用。
當(dāng)您需要定義一種新的對(duì)象時(shí),自定義類型非常有用。例如,您可能希望創(chuàng)建一個(gè)自定義類型來表示對(duì)象列表。這將允許您使用 Python 語法輕松地操作列表。
自定義類型的另一個(gè)常見用途是繼承。當(dāng)您創(chuàng)建從另一個(gè)類型繼承的自定義類型時(shí),您可以自動(dòng)訪問父類型的所有屬性和方法。當(dāng)您需要編寫適用于多種類型對(duì)象的代碼時(shí),這很有幫助。
Python 還內(nèi)置了對(duì)對(duì)象反射的支持。此功能允許您檢查程序中任何對(duì)象的屬性和方法。當(dāng)您需要了解對(duì)象的工作原理或調(diào)試代碼時(shí),這會(huì)非常有用。
6. 在 Python 中處理異常
Python 標(biāo)準(zhǔn)庫中有近 1,000 個(gè)函數(shù),您很容易被要求的所有內(nèi)容弄得不知所措。為了幫助緩解這個(gè)問題,Python 內(nèi)置了異常,這使得處理錯(cuò)誤更加可靠和容易。
這些是幫助您在編寫代碼時(shí)節(jié)省時(shí)間的有用工具,因?yàn)樗鼈兛梢栽谌魏慰赡艿腻e(cuò)誤發(fā)生之前發(fā)現(xiàn)它們。Python 異常是用于在 Python 程序執(zhí)行期間指示錯(cuò)誤的對(duì)象。它們?cè)?Python 的“異常”模塊中定義。
執(zhí)行 Python 程序時(shí)發(fā)生錯(cuò)誤時(shí)會(huì)創(chuàng)建異常。最常見的異常類型是“錯(cuò)誤”異常,當(dāng)嘗試對(duì)對(duì)象進(jìn)行無效操作時(shí)會(huì)引發(fā)該異常。
其他異常包括“TypeError”,當(dāng)值無法轉(zhuǎn)換為預(yù)期類型時(shí)引發(fā),以及“AttributeError”,當(dāng)嘗試訪問給定對(duì)象上不存在的屬性時(shí)引發(fā)。
為了使用異常,首先需要導(dǎo)入模塊“異常”。然后,您可以使用異常對(duì)象來識(shí)別和處理錯(cuò)誤。
例如,如果您嘗試打印包含意外字符的字符串,您可能會(huì)引發(fā)錯(cuò)誤。要捕獲此錯(cuò)誤并顯示一個(gè)消息框,通知用戶該問題,您可以使用內(nèi)置函數(shù)“raise”:
>>> 提出“意外字符”
回溯(最近一次通話最后):
File "", line 1, in File ".py",
在 Python 中編程時(shí)應(yīng)該考慮使用異常有幾個(gè)原因。
首先,它們可以幫助避免崩潰和意外故障。如果引發(fā)異常,Python 通常會(huì)立即停止程序的執(zhí)行并顯示錯(cuò)誤消息。這意味著您將始終知道出了什么問題,并可以采取適當(dāng)?shù)拇胧﹣矸乐箤沓霈F(xiàn)問題。
其次,異??捎糜诓东@有關(guān)特定操作失敗原因的特定信息。這有助于故障排除或更全面地理解代碼庫。例如,如果您嘗試從磁盤讀取文件但遇到 IOError 異常,則可以使用 exc_info() 函數(shù)獲取有關(guān)問題的詳細(xì)信息。
簡(jiǎn)而言之,異常在安全和調(diào)試方面提供了相當(dāng)大的好處。所以在 Python 中編碼時(shí)不要忘記它們!
盡情探索這些技術(shù),看看你可以用 Python 做哪些令人驚奇的事情!