Python:TypeError:只需要1个参数(给定2个)

时间:2011-01-20 05:14:57

标签: python

我目前正在使用singpath.com练习我的python,但我遇到了一个问题:

预期结果是:

>>>CurryPuff(3) 
3.60 
>>>CurryPuff(3,'Fish') 
4.2

这是我尝试过的:

def CurryPuff(x,typePuff):

   if(typePuff==''):

      return x*1.2

   if(typePuff=='Fish'):

      return x*1.4

但它给了我这个错误:

TypeError: CurryPuff() takes exactly 2 arguments (1 given)

我曾尝试谷歌搜索,但我不太确定使用的关键词是什么,所以希望能从这里得到帮助。

感谢。

1 个答案:

答案 0 :(得分:16)

如果期望为2,则不能使用1参数调用函数,如CurryPuff()那样。但是,您可以定义在未传递参数时使用的默认参数:

def CurryPuff(x, typePuff=None):
    if typePuff is None:
       # and so on...

您可以使用任何参数的任何值执行此操作。如果定义了默认值,则只能省略参数。