[Python]小甲魚Python視頻第039課(類和對象:拾遺 )課後題及參考解答
阿新 • • 發佈:2019-03-13
error peer 源代碼 die 學習 true 動手 刪除 繼承
# -*- coding: utf-8 -*- """ Created on Tue Mar 12 23:09:01 2019 @author: fengs """ """ 測試題: 0. 什麽是組合(組成)? 完全忘記了-------> 就是把類的屬性賦值成其他類的實例化對象 1. 什麽時候用組合,什麽時候用繼承? 完全忘記了 -----> 繼承,只繼承一個 組合-基本都可用,反正大家都是對象 2. 類對象是在什麽時候產生? 類的源代碼加載進內存時類對象就產生了,不需要實例化對象 3. 如果對象的屬性跟方法名字相同,會怎樣? 屬性會覆蓋方法 4. 請問以下類定義中哪些是類屬性,哪些是實例屬性? class C: num = 0 def __init__(self): self.x = 4 self.y = 5 C.count = 6 num 和 count 是類屬性 x 和 y 是實例屬性 5. 請問以下代碼中,bb 對象為什麽調用 printBB() 方法失敗? class BB: def printBB(): print("no zuo no die") >>> bb = BB() >>> bb.printBB() Traceback (most recent call last): File "<pyshell#8>", line 1, in <module> bb.printBB() TypeError: printBB() takes 0 positional arguments but 1 was given 實例方法的輸入參數中應該有self對象傳入,沒有指定方法的實例 """ """ 0. 思考這一講我學習的內容,請動手在一個類中定義一個變量,用於跟蹤該類有多少個實例被創建(當實例化一個對象,這個變量+1,當銷毀一個對象,這個變量自動-1)。 """ class Test(): object_count = 0 def __init__(self): Test.object_count += 1 print(‘object_count = %d‘ % Test.object_count) def __del__(self): Test.object_count -= 1 print(‘object_count = %d‘ % Test.object_count) test1 = Test() test2 = Test() del(test1) del(test2) """ 1. 定義一個棧(Stack)類,用於模擬一種具有後進先出(LIFO)特性的數據結構。至少需要有以下方法: isEmpty() 判斷當前棧是否為空(返回 True 或 False) push() 往棧的頂部壓入一個數據項 pop() 從棧頂彈出一個數據項(並在棧中刪除) top() 顯示當前棧頂的一個數據項 bottom() 顯示當前棧底的一個數據項 """ class Stack(): def __init__(self): self.stackMemory = list() def isEmpty(self): return len(self.stackMemory) == 0 def push(self,data): self.stackMemory.append(data) def pop(self): if self.isEmpty() == False: return self.stackMemory.pop() else: print(‘此棧已經為空,無法進行彈出操作‘) return None def top(self): if self.isEmpty() == False: print(‘當前棧頂元素為 ‘,end = ‘ ‘) print(self.stackMemory[-1]) else: print(‘此棧已經為空,無法進行棧頂查詢操作‘) def buttom(self): if self.isEmpty() == False: print(‘當前棧底元素為 ‘,end = ‘ ‘) print(self.stackMemory[0]) else: print(‘此棧已經為空,無法進行棧底查詢操作‘) stack = Stack() stack.push(1) stack.push([1,]) stack.push((1,2)) stack.top() stack.buttom()
[Python]小甲魚Python視頻第039課(類和對象:拾遺 )課後題及參考解答