Python中类型转换

it2024-10-03  22

Rational类实现了有理数运算,但是,如果如何把结果转为 int 或 float ?

考察整数和浮点数的转换:

print(int(12.36)) ==> 12 print(float(12)) ==> 12.0

如果要把 Rational 转为 int,应该使用:

r = Rational(12, 5) n = int(r)

要让int()函数正常工作,只需要实现特殊方法__int__():

class Rational(object): def __init__(self, p, q): self.p = p self.q = q def __int__(self): return self.p // self.q print(int(Rational(7, 2))) print(int(Rational(1, 3)))

结果为:

3 0

同理,要让float()函数正常工作,只需要实现特殊方法__float__()。


任务: 完善Rational,使之可以转型为float。

class Rational(object): def __init__(self, p, q): self.p = p self.q = q def __int__(self): return self.p // self.q def __float__(self): return float(self.p) / self.q print(float(Rational(7, 2))) print(float(Rational(1, 3)))

结果为:

3.5 0.3333333333333333

大家加油! 学习链接: https://www.imooc.com/code/6254

最新回复(0)