我正在尝试定义一个简单的 Fraction

我收到此错误:

python fraction.py
Traceback (most recent call last):
File "fraction.py", line 20, in <module>
   f.numerator(2)
TypeError: 'int' object is not callable

代码如下:
class Fraction(object):
    def __init__( self,  n=0, d=0 ):
       self.numerator = n
       self.denominator = d
    def get_numerator(self):
        return self.numerator
    def get_denominator(self):
         return self.denominator

    def numerator(self, n):
         self.numerator = n
    def denominator( self, d ):
         self.denominator = d

    def prints( self ):
          print "%d/%d" %(self.numerator, self.denominator)

if __name__ == "__main__":
    f = Fraction()
    f.numerator(2)
    f.denominator(5)
    f.prints()

我以为是因为我有 numerator(self)numerator(self, n) 但现在我知道 Python 没有方法重载(函数重载)所以我重命名为 get_numerator 但这不是问题。

会是什么呢?

最佳答案

您将 numerator 用作方法名称 ( def numerator(...) ) 和成员变量名称 ( self.numerator = n )。使用 set_numeratorset_denominator 作为方法名称,它会起作用。

顺便说一下,Python 2.6 有一个内置的 fraction class

关于python - “int”对象不可调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2702344/

10-12 18:41