[問題] 有關物件引入物件

看板Python作者 (vv)時間9年前 (2016/09/21 09:53), 9年前編輯推噓3(307)
留言10則, 3人參與, 最新討論串1/1
不好意思,找不到相關的資料 所以想問一下該怎麼處理 # 分數的模組 class fraction: numerator = 0 # 分母 denominator = 1 # 分子 # (分子, 分母, 整數) def __init__(self, denominator, numerator = 1): self.numerator = numerator self.denominator = denominator def show(self): print(self.denominator, " / ", numerator) def eq(self, denominator, numerator = 1): self.numerator = numerator self.denominator = denominator 這個簡單的物件 我想要寫出一個函式, 使得可以做下列的操作 a = fraction(3, 4) b = fraction(2, 7) a = fraction.add(b) 也就是直接把物件 b 當成參數,造成 a = a + b 的結果 可是找不到該怎麼下這個參數的方法 目前只寫得出 a = fraction.add(b.numerator, b.denominator) 只是這樣子就很不方便 所以想問各位先進,該怎麼處理 -- 家教經驗談 & 利用 TeX 編考卷與講義 http://dunst-kang.blogspot.com/ 要轉錄文章的人請注意三件事 1. 請註明出處, 2. 請保留簽名檔, 3. 請發個 mail 讓我知道 我的動態...(要簡單的註冊才能互動)歡迎一起來囉 bbs 型的微型網誌(plurk) http://plurk.com/dunst/invite -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.245.65.130 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1474422810.A.84E.html

09/21 10:06, , 1F
def adder(a): return lambda b: a + b # currying ?
09/21 10:06, 1F

09/21 10:34, , 2F
我研究一下,謝謝
09/21 10:34, 2F

09/21 14:16, , 3F
magic function : __add__(self, fraction)
09/21 14:16, 3F
感謝提供方法 只是, 這樣的 magic function 有特定對象 我比較好奇的是 要怎麼把自訂的物件當成引入參數

09/21 14:55, , 5F
然後你分子分母的英文是不是搞錯了?
09/21 14:55, 5F

09/21 15:43, , 6F
是註釋寫錯了 ..~>_<~
09/21 15:43, 6F
※ 編輯: vvbird (175.182.112.180), 09/21/2016 15:46:09

09/21 15:59, , 7F
python走duck type 不用太強調物件本身的type吧
09/21 15:59, 7F

09/21 16:30, , 8F
推duck type ,若你很在意參數型態,就要自己在class
09/21 16:30, 8F

09/21 16:30, , 9F
內加入TypeError的檢查
09/21 16:30, 9F

09/21 16:35, , 10F
了解, 感謝...
09/21 16:35, 10F
文章代碼(AID): #1NuUWQXE (Python)
文章代碼(AID): #1NuUWQXE (Python)