我正在尝试定义一个简单的 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_numerator
和 set_denominator
作为方法名称,它会起作用。
顺便说一下,Python 2.6 有一个内置的 fraction class 。
关于python - “int”对象不可调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2702344/