[问题] 有关物件引入物件

楼主: vvbird (vv)   2016-09-21 09:53:28
不好意思,找不到相关的资料
所以想问一下该怎么处理
# 分数的模组
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)
只是这样子就很不方便
所以想问各位先进,该怎么处理
作者: Yshuan (倚絃)   2016-09-21 10:06:00
def adder(a): return lambda b: a + b # currying ?
楼主: vvbird (vv)   2016-09-21 10:34:00
我研究一下,谢谢
作者: Typebrook (Pham)   2016-09-21 14:16:00
magic function : __add__(self, fraction)http://paste.ofcode.org/FYErznr2KBbDc7rQz9ghBF然后你分子分母的英文是不是搞错了?
楼主: vvbird (vv)   2016-09-21 15:43:00
是注释写错了 ..~>_<~
作者: Yshuan (倚絃)   2016-09-21 15:59:00
python走duck type 不用太强调物件本身的type吧
作者: Typebrook (Pham)   2016-09-21 16:30:00
推duck type ,若你很在意参数型态,就要自己在class内加入TypeError的检查
楼主: vvbird (vv)   2016-09-21 16:35:00
了解, 感谢...

Links booklink

Contact Us: admin [ a t ] ucptt.com