我试图定义一个简单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
但这不是问题。
它可能是什么?
作为初学者,你应该学习,这在Python没有必要在这些简单的情况下getter和setter方法。只有分子和分母的属性就好,并且被接受。如果你真的想明确getter和setter *函数*,你应该使用下划线来保护你的属性。无论哪种方式,你的名字冲突问题不会发生。 – Debilski 2010-04-23 23:48:15