作者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://webptt.com/cn.aspx?n=bbs/Python/M.1474422810.A.84E.html
1F:推 Yshuan: def adder(a): return lambda b: a + b # currying ? 09/21 10:06
2F:→ vvbird: 我研究一下,谢谢 09/21 10:34
3F:→ Typebrook: magic function : __add__(self, fraction) 09/21 14:16
感谢提供方法
只是, 这样的 magic function 有特定对象
我比较好奇的是
要怎麽把自订的物件当成引入参数
5F:→ Typebrook: 然後你分子分母的英文是不是搞错了? 09/21 14:55
6F:→ vvbird: 是注释写错了 ..~>_<~ 09/21 15:43
※ 编辑: vvbird (175.182.112.180), 09/21/2016 15:46:09
7F:推 Yshuan: python走duck type 不用太强调物件本身的type吧 09/21 15:59
8F:推 Typebrook: 推duck type ,若你很在意参数型态,就要自己在class 09/21 16:30
9F:→ Typebrook: 内加入TypeError的检查 09/21 16:30
10F:→ vvbird: 了解, 感谢... 09/21 16:35