2012-03-30 37 views
1

我对Python很新,我正在创建一个新的计算器类。我已经开始了我的代码:如何创建一个计算器类,它将接受使用Python的任意数量的数字

 
class calculator (object): 

    def __init__ (self, *values): 

但是,我卡在这里。我需要创建def def和def multiplying等;但我不知道如何开始它,或者如果我在这里是正确的。我想知道我是否正确使用*值,因为我需要接受任意数量的函数。如果是这样,我该怎么做init?非常感谢。

+4

你为什么要当你初始化它通过所有的数字在计算器?你为什么不在调用操作时传递数字? – kindall 2012-03-30 06:27:54

+0

你应该看看这个:http://stackoverflow.com/questions/919680/python-can-a-variable-number-of-arguments-be-passed-to-a-function – theonova 2012-03-30 06:32:15

+2

如果你不知道在哪里你要走了,有可能你会到别的地方;-)首先定义你希望计算器如何工作而不管实现如何,然后才开始将各种编程工件映射到所需的特征。 – mjv 2012-03-30 06:32:51

回答

0

您应该使用__init__来初始化计算器,而不是它的计算(这就是类的方法)。因此,例如,你可以这样做:

 
class Calculator(object): 
    def __init__(self, arg1): 
     self.arg1 = arg1 

    def add(self, a, b): 
     return a + b 

我不知道你需要什么样的变量初始化一个计算器,但也许你可以想出一些。然后,你可以这样做:

 
calculator = Calculator() 
# the following prints 7 
print calculator.add(3, 4) 
+0

这实际上非常有帮助,我认为我错了__init__的作用。非常感谢! – 2012-03-30 06:37:06

0
class Calculator(object): 
    def __init__(self,*vals): 
     self.vals = vals #list of vals here 

    def add(self): 
     return sum(self.vals) 
+0

这将需要您在每次需要完成新计算时实例化新的Calculator对象。这不是很有用。 – 2012-03-30 10:29:10

相关问题