02-01 01—05


1、簡述面向對象的三大特性。

# 答案
封裝:
  	封裝指的是把一堆數據屬性與方法數據放在一個容器中,這個容器就是對象。讓對象可以通過 "." 來調用對象中的數據屬性與方法屬性。
    
繼承:
  	繼承指的是子類可以繼承父類的數據屬性與方法屬性,並可以對其進行修改或使用。
    
多態:
  	在python中的多態指的是讓多種類若具備類似的數據屬性與方法屬性,都統一好命名規范,這樣可以提高開發者的代碼統一性,使得調用者更方便去理解。

2、什么是鴨子模型?

# 答案
在python中不會強制性要求所有人的代碼都統一規范,不統一也不會報錯,若使用抽象類就會使python代碼強制統一規范,這樣不符合python動態語言的特性。所以讓大家都自覺統一好規范,若大家的對象方法都類似的話就一種規范,只要長得像鴨子,就稱之為鴨子類型。

3、super 的作用?

# 答案
'''
		使用super()可以在子類中調用父類的方法或屬性, 可能你會說, 子類本來就可以調用父類中所有非私有的屬性或方法,而我現在說的是, 當子類中實現了某個方法, 父類中也有這個方法, 當你調用這個方法時, 既想執行子類的又想執行父類的, 在這種情況下就可以使用super()
'''

4、mro 是什么?

# 答案
'''
		mro全稱Method Resolution Order,指的是方法解析順序。
		方法調用時就需要對當前類和基類進行搜索以確定方法所在的位置。而搜索的順序就是所謂的「方法解析順序」。
'''

5、什么是 c3 算法?

# 答案
'''
C3算法最早被提出是用於Lisp的,應用在Python中是為了解決原來基於深度優先搜索算法不滿足本地優先級,和單調性的問題。
本地優先級:指聲明時父類的順序,比如C(A,B),如果訪問C類對象屬性時,應該根據聲明順序,優先查找A類,然后再查找B類。
單調性:如果在C的解析順序中,A排在B的前面,那么在C的所有子類里,也必須滿足這個順序。
'''


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM