zoukankan      html  css  js  c++  java
  • 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__()。

    任务

    请继续完善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 self.p / self.q
    
    print (float(Rational(7, 2)))
    print (float(Rational(1, 3)))

    运行结果

    3.5
    0.3333333333333333
  • 相关阅读:
    leetcode78 Subsets
    leetcode76 Minimum Window Substring
    leetcode73 Set Matrix Zeroes
    leetcode70 Climbing Stairs
    leetcode50 Pow(x, n)
    leetcode49 Group Anagrams
    leetcode48 Rotate Image
    正则表达式及字符处理
    RPM软件包管理.作业
    yum管理RPM包.作业
  • 原文地址:https://www.cnblogs.com/SCCQ/p/12285435.html
Copyright © 2011-2022 走看看