Python 入門指南 5.0
exercise1606.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | # 引入標準程式中的 abc import abc # 引入 Point 定義 from exercise1501 import Point # 定義父類別 class Animal: # 設定實體屬性 def __init__(self, p, n, c): # 動物種類 self.name = n if type(n) == str else None # 動物座標 self.point = p if type(p) == Point else None # 動物陣營 self.camp = c if type(c) == str else None # 動物生命 self.health = True # 設定字串形式 def __str__(self): return self.name # 設定布林屬性 def __bool__(self): if self.name != None and self.point != None\ and self.camp != None and self.health: return True else: return False # 向上移動 def up(self): self.point.y += 1 # 向下移動 def down(self): self.point.y -= 1 # 向右移動 def right(self): self.point.x += 1 # 向左移動 def left(self): self.point.x -= 1 # 定義過河的抽象方法 @abc.abstractmethod def cross_river(self): # 發起未實作的例外 raise NotImplemented # 建立大象物件 elephant = Animal(Point(2,1), "象", "Blue") # 呼叫抽象方法 try: elephant.cross_river() except: print("大象不能過河") # 檔名: exercise1606.py # 說明:《Python入門指南》的練習 # 網站: http://kaiching.org # 作者: 張凱慶 # 時間: 2023 年 9 月 |