Python 入門指南 5.0
exercise2005.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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | """模組 exercise20035 方法 set_value() @property addition substraction multiplication division modulo""" # 定義算術運算類別 class Calculator: """進行兩個整數的加、減、乘、除、取餘數等計算""" # 設定實體屬性 def __init__(self, v1: int, v2: int): # 呼叫設定屬性的方法 if not self.set_value(v1, v2): raise ValueError # 設定實體物件的字串形式 def __str__(self) -> str: return str(self.__value1) + ", " +\ str(self.__value2) # 設定實體物件在互動介面的字串形式 def __repr__(self) -> str: return "兩個數字是 " + str(self.__value1) +\ ", " + str(self.__value2) + "\n" +\ "和" + str(self.addition) +\ "差" + str(self.substraction) +\ "積" + str(self.multiplication) +\ "商" + str(self.division) +\ "餘數" + str(self.modulo) # 依據實體屬性回傳真假值 def __bool__(self) -> bool: if self.__value1 and self.__value2: return True else: return False # 設定屬性的方法 def set_value(self, v1: int, v2: int) -> bool: """檢查參數是否為整數並回傳真假值""" # 檢查參數是否為整數 try: # 檢查參數 v1 、 v2 是否為整數 assert type(v1) is int assert type(v2) is int # 設定實體屬性 self.__value1 = v1 self.__value2 = v2 # 回傳 True return True except AssertionError: # 回傳 False return False # 加法的 getter @property def addition(self): return self.__value1 + self.__value2 # 減法的 getter @property def substraction(self): return self.__value1 - self.__value2 # 乘法的 getter @property def multiplication(self): return self.__value1 * self.__value2 # 除法的 getter @property def division(self): return self.__value1 / self.__value2 # 取餘數的 getter @property def modulo(self): return self.__value1 % self.__value2 # 執行部分 if __name__ == "__main__": print(__doc__) print(Calculator.__name__ + ": " + Calculator.__doc__) print(Calculator.set_value.__name__ + "(): " + Calculator.set_value.__doc__) # 檔名: exercise2005.py # 說明:《Python入門指南》的練習 # 網站: http://kaiching.org # 作者: 張凱慶 # 時間: 2023 年 10 月 |