看板 Python 關於我們 聯絡資訊
不好意思,找不到相關的資料 所以想問一下該怎麼處理 # 分數的模組 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
Yshuan: def adder(a): return lambda b: a + b # currying ? 09/21 10:06
vvbird: 我研究一下,謝謝 09/21 10:34
Typebrook: magic function : __add__(self, fraction) 09/21 14:16
感謝提供方法 只是, 這樣的 magic function 有特定對象 我比較好奇的是 要怎麼把自訂的物件當成引入參數
Typebrook: 然後你分子分母的英文是不是搞錯了? 09/21 14:55
vvbird: 是註釋寫錯了 ..~>_<~ 09/21 15:43
※ 編輯: vvbird (175.182.112.180), 09/21/2016 15:46:09
Yshuan: python走duck type 不用太強調物件本身的type吧 09/21 15:59
Typebrook: 推duck type ,若你很在意參數型態,就要自己在class 09/21 16:30
Typebrook: 內加入TypeError的檢查 09/21 16:30
vvbird: 了解, 感謝... 09/21 16:35