官术网_书友最值得收藏!

第2章 函數式編程的特點

Python內置了函數式編程的大部分特性。編寫函數式的Python代碼要求我們盡量避免使用命令式(包括過程式和面向對象式)編程技術。

本章將介紹以下函數式編程技術。

? 頭等函數和高階函數,也稱“純函數”。

? 不可變數據結構。

? 嚴格求值與非嚴格求值,也稱“積極求值”與“惰性求值”。

? 用遞歸代替顯式循環語句。

? 函數類型系統。

回顧一下上一章提到的概念,首先,純粹的函數式編程避免了由于使用變量賦值導致程序顯式維護計算狀態而帶來的復雜性;其次,Python不是純粹的函數式語言。

本書不會給出函數式編程的確切概念。Python不是純粹的函數式語言,并且嚴格的定義并無幫助。我們將關注公認的重要函數式特性,不涉足有爭議的模糊地帶。

本章的示例代碼將涉及Python 3的類型提示語法。類型提示有助于開發者闡述函數定義的核心目標,這里使用mypy工具分析類型提示。與提供單元測試和代碼靜態分析的pylint類似,mypy也是構建高質量軟件工具鏈的重要組成部分。

主站蜘蛛池模板: 迁安市| 宜城市| 民勤县| 牙克石市| 北京市| 榆社县| 阳曲县| 大洼县| 曲阳县| 玛纳斯县| 中江县| 洛阳市| 通州区| 哈尔滨市| 应城市| 华亭县| 永善县| 芷江| 永善县| 阿拉善右旗| 井陉县| 武川县| 明溪县| 麻栗坡县| 酒泉市| 敦化市| 布拖县| 尚志市| 美姑县| 隆昌县| 昌宁县| 灌阳县| 文昌市| 开远市| 江津市| 贞丰县| 普安县| 巴彦淖尔市| 马鞍山市| 唐海县| 东兰县|