日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pthon_函数式编程与面向对象编程的比较

發布時間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pthon_函数式编程与面向对象编程的比较 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 函數式編程作為結構化編程的一種,正在受到越來越多的重視。工程中不在只是面向對象編程,更多的人嘗試著開始使用函數式編程來解決軟件工程中遇到的問題。

??????????? 什么是函數式編程?在維基百科中給出了詳細的定義,函數式編程(英語:functional programming)或稱函數程序設計,又稱泛函編程,是一種編程范型,它將電腦運算視為數學上的函數計算,并且避免使用程序狀態以及易變對象。函數編程語言最重要的基礎是λ演算(lambda calculus)。而且λ演算的函數可以接受函數當作輸入(引數)和輸出(傳出值)。

??????????? ?而在面向對象編程中,面向對象程序設計(英語:Object-oriented programming,縮寫:OOP)是種具有對象概念的程序編程范型,同時也是一種程序開發的方法。它可能包含數據、屬性、代碼與方法。對象則指的是類的實例。它將對象作為程序的基本單元,將程序和數據封裝其中,以提高軟件的重用性、靈活性和擴展性,對象里的程序可以訪問及經常修改對象相關連的數據。在面向對象程序編程里,計算機程序會被設計成彼此相關的對象。

??????????? 對象與對象之間的關系是面向對象編程首要考慮的問題,而在函數式編程中,所有的數據都是不可變的,不同的函數之間通過數據流來交換信息,函數作為FP中的一等公民,享有跟數據一樣的地位,可以作為參數傳遞給下一個函數,同時也可以作為返回值。

?

面向對象編程的優點

??????????? 面向對象程序設計可以看作一種在程序中包含各種獨立而又互相調用的對象的思想,這與傳統的思想剛好相反。傳統的程序設計主張將程序看作一系列函數的集合,或者直接就是一系列對電腦下達的指令。面向對象程序設計中的每一個對象都應該能夠接受數據、處理數據并將數據傳達給其它對象,因此它們都可以被看作一個小型的“機器”,即對象。目前已經被證實的是,面向對象程序設計推廣了程序的靈活性和可維護性,并且在大型項目設計中廣為應用。此外,支持者聲稱面向對象程序設計要比以往的做法更加便于學習,因為它能夠讓人們更簡單地設計并維護程序,使得程序更加便于分析、設計、理解。同時它也是易拓展的,由于繼承、封裝、多態的特性,自然設計出高內聚、低耦合的系統結構,使得系統更靈活、更容易擴展,而且成本較低。

??????????? 在面向對象編程的基礎上發展出來的23種設計模式廣泛應用于現今的軟件工程中,極大方便了代碼的書寫與維護。

??????????? 創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。

結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。

行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。

?

面向對象編程的缺點

??????????? 面向對象編程以數據為核心,所以在多線程并發編程中,多個線程同時操作數據的時候可能會導致數據修改的不確定性。

??????????? 在現在的軟件工程中,由于面向對象編程的濫用,導致了很多問題。首先就是為了寫可重用的代碼而產生了很多無用的代碼,導致代碼膨脹,同時很多人并沒有完全理解面向對象思想,為了面向對象而面向對象,使得最終的代碼晦澀難懂,給后期的維護帶來了很大的問題。所以對于大項目的開發,使用面向對象會出現一些不適應的情況。

??????????? 面向對象雖然開發效率高但是代碼的運行效率比起面向過程要低很多,這也限制了面向對象的使用場景不能包括那些對性能要求很苛刻的地方。

?

函數式編程的優點

??????????? 在函數式編程中,由于數據全部都是不可變的,所以沒有并發編程的問題,是多線程安全的。可以有效降低程序運行中所產生的副作用,對于快速迭代的項目來說,函數式編程可以實現函數與函數之間的熱切換而不用擔心數據的問題,因為它是以函數作為最小單位的,只要函數與函數之間的關系正確即可保證結果的正確性。

??????????? 函數式編程的表達方式更加符合人類日常生活中的語法,代碼可讀性更強。實現同樣的功能函數式編程所需要的代碼比面向對象編程要少很多,代碼更加簡潔明晰。函數式編程廣泛運用于科學研究中,因為在科研中對于代碼的工程化要求比較低,寫起來更加簡單,所以使用函數式編程開發的速度比用面向對象要高很多,如果是對開發速度要求較高但是對運行資源要求較低同時對速度要求較低的場景下使用函數式會更加高效。

?

函數式編程的缺點

??????????? 由于所有的數據都是不可變的,所以所有的變量在程序運行期間都是一直存在的,非常占用運行資源。同時由于函數式的先天性設計導致性能一直不夠。雖然現代的函數式編程語言使用了很多技巧比如惰性計算等來優化運行速度,但是始終無法與面向對象的程序相比,當然面向對象程序的速度也不夠快。

??????????? 函數式編程雖然已經誕生了很多年,但是至今為止在工程上想要大規模使用函數式編程仍然有很多待解決的問題,尤其是對于規模比較大的工程而言。如果對函數式編程的理解不夠深刻就會導致跟面相對象一樣晦澀難懂的局面。

?

總結

??????????? 函數式編程和面向對象編程各有利弊,一個語法更加自由,一個健壯性更好。作為程序員應該對兩種編程方式都有所了解,不管是哪種方式,只要能夠很好的解決當前的問題就是正確的方式,畢竟對于軟件工程來說解決問題是最主要的,用的工具反而沒有那么重要,就像對程序員來說語言不重要,重要的是解決問題的思想。

現在這兩者的發展趨勢是相互借鑒的,許多以面向對象作為基礎的語言例如Java等都在新的版本中添加了對函數式編程的支持,而函數式編程則借鑒了一些在面向對象語言里用的一些編譯技巧使得程序運行更快。

?

函數是Python內建支持的一種封裝,我們通過把大段代碼拆成函數,通過一層一層的函數調用,就可以把復雜任務分解成簡單的任務,這種分解可以稱之為面向過程的程序設計。函數就是面向過程的程序設計的基本單元。

而函數式編程(請注意多了一個“式”字)——Functional Programming,雖然也可以歸結到面向過程的程序設計,但其思想更接近數學計算。

我們首先要搞明白計算機(Computer)和計算(Compute)的概念。

在計算機的層次上,CPU執行的是加減乘除的指令代碼,以及各種條件判斷和跳轉指令,所以,匯編語言是最貼近計算機的語言。

而計算則指數學意義上的計算,越是抽象的計算,離計算機硬件越遠。

對應到編程語言,就是越低級的語言,越貼近計算機,抽象程度低,執行效率高,比如C語言;越高級的語言,越貼近計算,抽象程度高,執行效率低,比如Lisp語言。

函數式編程就是一種抽象程度很高的編程范式,純粹的函數式編程語言編寫的函數沒有變量,因此,任意一個函數,只要輸入是確定的,輸出就是確定的,這種純函數我們稱之為沒有副作用。而允許使用變量的程序設計語言,由于函數內部的變量狀態不確定,同樣的輸入,可能得到不同的輸出,因此,這種函數是有副作用的。

函數式編程的一個特點就是,允許把函數本身作為參數傳入另一個函數,還允許返回一個函數!

Python對函數式編程提供部分支持。由于Python允許使用變量,因此,Python不是純函數式編程語言。

轉載于:https://www.cnblogs.com/ne-zha/p/7429962.html

總結

以上是生活随笔為你收集整理的pthon_函数式编程与面向对象编程的比较的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品视频免费看 | 国产精品21p | 青青青在线视频免费观看 | 日本一区二区不卡在线观看 | 国产永久在线 | va婷婷| 男人的天堂avav | 91成年视频 | 免费特级黄色片 | 精品久久久久久久久久久久久久久久 | 蜜臀一区二区三区精品免费视频 | 日韩中文字幕网址 | 久久ww| www.久久| 国产精品电影一区二区三区 | 国产91美女视频 | 欧美日韩在线a | 韩日av片 | 国内少妇毛片视频 | 玖玖爱在线精品视频 | av全黄 | 亚洲中文字幕无码av永久 | 国产亚洲天堂网 | 午夜写真片福利电影网 | 丰满护士巨好爽好大乳 | 阿娇全套94张未删图久久 | 精品中文字幕在线 | 少妇把腿扒开让我舔18 | 超碰这里只有精品 | 日本免费不卡 | 2022av在线 | 成人午夜免费电影 | 日本丰满大乳奶做爰 | 免费日韩av | 456亚洲视频 | 精品人妻午夜一区二区三区四区 | 欧美狂猛xxxxx乱大交3 | 欧美片| 五月情网 | 欧美成人精品一区二区三区在线看 | 少妇熟女一区二区 | 123超碰 | 欧美成人自拍 | 黄色三及 | 日本猛少妇色xxxxx猛叫 | 久久日精品 | 影视av | 日本精品三区 | 韩国中文三级hd字幕 | 欧美涩涩视频 | av成人天堂 | 囯产精品久久久久久 | 国产精品三区四区 | 波多野结衣三级视频 | 日本 奴役 捆绑 受虐狂xxxx | 天天cao在线 | 福利视频一区二区 | 日韩精品成人一区 | 欧美在线一级片 | 狠狠操综合网 | 色久综合网 | 99精品在线免费观看 | 日本少妇xxx | 国产精品无码网站 | 爱操影院 | 亚洲欧美国产精品专区久久 | 不卡免费视频 | 无套内谢大学处破女www小说 | 91插插影库 | 9.1成人免费看片 | 打屁股av| 中文在线最新版天堂8 | 午夜一级在线 | 波多野吉衣久久 | 精品字幕| 激情六月婷婷 | 欧美日韩成人 | 一道本一区 | 亚洲bb | 欧美在线看 | 超碰成人免费电影 | 九九热视频在线播放 | 亚天堂 | 亚洲性网 | 亚洲视频一区在线 | 欧美日韩激情视频 | 精品久久精品 | 黄色一级片毛片 | 天堂视频一区 | 69社| 亲女禁h啪啪宫交 | 香蕉视频入口 | 国v精品久久久网 | av永久| 免费看a级黄色片 | 日本高清精品 | 不卡的av在线免费观看 | 亚洲xx在线 | 日韩精品免费在线视频 |