当前位置:首页 > Python教程 > python技巧

python数学运算的类型转换

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

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

>>> 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__()。
            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))

注意:python的类型转换不是自动的,需要自己手动强制类型转换。

原文:http://www.cnblogs.com/superxuezhazha/p/5793444.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐