42-python中类型转换

Rational类实现了有理数运算,但是,如果要把结果转为intfloat怎么办?

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

>>> int(12.34)

12

>>> 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))

3

>>> print int(Rational(1, 3))

0

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容