python继承方式是基于原型吗_基于原型与基于类的继承
小編典典
這里大約有一百個術語問題,大多數是圍繞某人(不是您)試圖使他們的想法聽起來像是“最好的”。
所有面向對象的語言都必??須能夠處理以下幾個概念:
數據封裝以及對數據的關聯操作,除其他外,各種操作被稱為數據成員和成員函數,或者稱為數據和方法。
繼承性,可以說這些對象就像其他對象集一樣,但這些更改除外
一個對象的多態性(“許多形狀”),它可以自己決定要運行的方法,以便您可以依靠語言正確地路由請求。
現在,就比較而言:
首先是整個“類”與“原型”問題。這個想法最初是從Simula開始的,在Simula中,每個類都使用基于類的方法來表示一組對象,這些對象共享相同的狀態空間(讀取“可能的值”)和相同的操作,從而形成一個等效類。如果回顧一下Smalltalk,由于可以打開一個類并添加方法,因此這實際上與您在Javascript中可以執行的操作相同。
后來的OO語言希望能夠使用靜態類型檢查,因此我們得到了在編譯時設置固定類的概念。在開放式版本中,您具有更大的靈活性;在較新的版本中,您可以在編譯器中檢查某些類型的正確性,否則它們將需要測試。
在“基于類”的語言中,復制發生在編譯時。在原型語言中,操作存儲在原型數據結構中,并在運行時進行復制和修改。但是,抽象地講,一個類仍然是共享相同狀態空間和方法的所有對象的等效類。在原型中添加方法時,實際上是在制作新的等效類的元素。
現在,為什么呢?主要是因為它在運行時提供了一種簡單,邏輯,優雅的機制。現在,要創建一個新對象 或
創建一個新類,您只需要執行一個深層復制,即復制所有數據和原型數據結構。然后,您或多或少可以免費獲得繼承和多態性:方法查找 始終
包括按名稱向字典請求方法實現。
最終以Javascript /
ECMA腳本結尾的原因基本上是,當我們在10年前開始使用該技術時,我們所使用的功能卻差強人意的計算機和復雜得多的瀏覽器都需要處理。選擇基于原型的方法意味著解釋器可能非常簡單,同時保留了面向對象的理想特性。
2020-05-01
總結
以上是生活随笔為你收集整理的python继承方式是基于原型吗_基于原型与基于类的继承的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python七夕快乐图片_提前祝七夕快乐
- 下一篇: 海岸边频现千米下深海鱼:长相古怪 雌性是