对函数返回的困惑

时间:2014-06-27 15:59:58

标签: python

我是Python开发的新手,我看到的代码对我来说似乎太复杂了。实际代码

def somefunction():
    return 5+3

当我调用该函数时,它将答案返回为8 ...

我在互联网上看到的代码方法:

def somefunction():
    return( somefunction(5+3))

当我调用此函数时,它给了我一个错误,如TypeError: somename() takes 0 positional arguments but 1 was given

我对第二种方法感到有点困惑;可以这样做吗?在这种情况下,我们在第二种方法中使用该函数......

1 个答案:

答案 0 :(得分:3)

第二个例子使用递归。问题在于函数:

def somefunction():
    return somefunction(5+3)

我们正在进行somefunction(5+3),这意味着我们希望somefunction获取参数(通过提供5+3的参数),而不是def somefunction(a): # a is a parameter return somefunction(5+3) 。因此给出了错误。

这可以通过给出参数定义来解决:

a

但请注意:

  1. 这仍然不是一个很好的功能(为什么需要5 + 3并返回def add_three(number): return number + 3 )。
  2. 显示无限递归。
  3. <强>更新

    根据OP请求。

    {{1}}