第七章
一. 單選題(共2題,4.6分)
- 以下哪個不屬於面向對象的特征( )
- A. 封裝
- B. 繼承
- C. 多態
- D. 復合
答案:D
- 面向對象方法中,繼承是指 ( )
- A. 類之間共享屬性和操作的機制
- B. 各對象之間的共同性質
- C. 一組對象所具有的相似性質
- D. 一個對象具有另一個對象的性質
答案:A
二. 填空題(共6題,13.8分)
- 在Python定義類時,與運算符“** ”對應的特殊方法名為。
- 答案: pow()
- 在Python中定義類時,與運算符“// ”對應的特殊方法名為。
- 答案:
__floordiv__()
- 表達式 type({}) == dict的值為。
- 答案: True
- 表達式 type({}) == set的值為。
- 答案:False
- 在Python中,不論類的名字是什么,構造方法的名字都是。
- 答案: init
- 如果在設計一個類時實現了contains() 方法,那么該類的對象會自動支持運算符。
- 答案: in
三. 判斷題(共35題,81.6分)
- 在Python中定義類時,如果某個成員名稱前有2個下划線則表示是私有成員。
- A. 對
- B. 錯
答案:對
- 在類定義的外部沒有任何辦法可以訪問對象的私有成員。
- A. 對
- B. 錯
答案:錯
- Python中一切內容都可以稱為對象。
- A. 對
- B. 錯
答案:對
- 棧和隊列的都具有先入后出的特點。
- A. 對
- B. 錯
答案:錯
- 在一個軟件的設計與開發中,所有類名、函數名、變量名都應該遵循統一的風格和規范。
- A. 對
- B. 錯
答案:對
- 定義類時所有實例方法的第一個參數用來表示對象本身,在類的外部通過對象名來調用實例方法時不需要為該參數傳值。
- A. 對
- B. 錯
答案:對
- 在面向對象程序設計中,函數和方法是完全一樣的,都必須為所有參數進行傳值。
- A. 對
- B. 錯
答案:錯
- Python中沒有嚴格意義上的私有成員。
- A. 對
- B. 錯
答案:對
- 在Python中定義類時,運算符重載是通過重寫特殊方法實現的。例如,在類中實現了__mul__()方法即可支持該類對象的**運算符。
- A. 對
- B. 錯
答案:錯
- 在IDLE交互模式下,一個下划線“_”表示解釋器中最后一次顯示的內容或最后一次語句正確執行的輸出結果。
- A. 對
- B. 錯
答案:對
- 對於Python類中的私有成員,可以通過“對象名._類名__私有成員名”的方式來訪問。
- A. 對
- B. 錯
答案:對
- 運算符“-”可以用於集合的差集運算。
- A. 對
- B. 錯
答案:對
- 如果定義類時沒有編寫析構函數,Python將提供一個默認的析構函數進行必要的資源清理工作。
- A. 對
- B. 錯
答案:對
- 已知seq為長度大於10的列表,並且已導入random模塊,那么[random.choice(seq) for i in range(10)]和random.sample(seq,10)等價。
- A. 對
- B. 錯
答案:錯
- 在派生類中可以通過“基類名.方法名()”的方式來調用基類中的方法。
- A. 對
- B. 錯
答案:對
- Python支持多繼承,如果父類中有相同的方法名,而在子類中調用時沒有指定父類名,則Python解釋器將從左向右按順序進行搜索。
- A. 對
- B. 錯
答案:對
- 在Python中定義類時實例方法的第一個參數名稱必須是self。
- A. 對
- B. 錯
答案:錯
- 在Python中定義類時實例方法的第一個參數名稱不管是什么,都表示對象自身。
- A. 對
- B. 錯
答案:對
- 定義類時如果實現了__contains__()方法,該類對象即可支持成員測試運算in。
- A. 對
- B. 錯
答案:對
- 定義類時如果實現了__len__()方法,該類對象即可支持內置函數len()。
- A. 對
- B. 錯
答案:對
- 定義類時實現了__eq__()方法,該類對象即可支持運算符==。
- A. 對
- B. 錯
答案:對
- 定義類時實現了__pow__()方法,該類對象即可支持運算符**。
- A. 對
- B. 錯
答案:對
- Python類的構造函數是__init__()。
- A. 對
- B. 錯
答案:對
- 定義類時,在一個方法前面使用@classmethod進行修飾,則該方法屬於類方法。
- A. 對
- B. 錯
答案:對
- 定義類時,在一個方法前面使用@staticmethod進行休息,則該方法屬於靜態方法。
- A. 對
- B. 錯
答案:對
- 通過對象不能調用類方法和靜態方法。
- A. 對
- B. 錯
答案:錯
- 在Python中可以為自定義類的對象動態增加新成員。
- A. 對
- B. 錯
答案:對
- Python類不支持多繼承。
- A. 對
- B. 錯
答案:錯
- 屬性可以像數據成員一樣進行訪問,但賦值時具有方法的優點,可以對新值進行檢查。
- A. 對
- B. 錯
答案:對
- 只可以動態為對象增加數據成員,而不能為對象動態增加成員方法。
- A. 對
- B. 錯
答案:錯
- 任何包含__call__()方法的類的對象都是可調用的。
- A. 對
- B. 錯
答案:對
- 在Python中函數和類都屬於可調用對象。
- A. 對
- B. 錯
答案:對
- 函數和對象方法是一樣的,內部實現和外部調用都沒有任何區別。
- A. 對
- B. 錯
答案:錯
- 在設計派生類時,基類的私有成員默認是不會繼承的。
- A. 對
- B. 錯
答案:對
- 如果在設計一個類時實現類__len__()方法,那么該類的對象會自動支持Python內置函數len()。
- A. 對
- B. 錯
答案:對