作者vvbird (vv)
看板Python
標題[問題] 有關物件引入物件
時間Wed Sep 21 09:53:28 2016
不好意思,找不到相關的資料
所以想問一下該怎麼處理
# 分數的模組
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