对函数返回的混淆

2024-04-20 10:47:08 发布

您现在位置:Python中文网/ 问答频道 /正文

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

def somefunction():
    return 5+3

当我调用函数时,它返回的答案是8。。。你知道吗

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

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

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

我对第二种方法有点困惑,可以这样做吗?在这种情况下,我们使用第二种方法中的函数。。。你知道吗


Tags: 方法函数答案代码returndefargumentsbut
1条回答
网友
1楼 · 发布于 2024-04-20 10:47:08

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

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

我们正在做somefunction(5+3),这意味着我们期望somefunction接受一个参数(通过给出一个5+3的参数),而它没有。因此给出了一个误差。你知道吗

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

def somefunction(a): # a is a parameter
    return somefunction(5+3)

不过,请注意:

  1. 这仍然不是一个很好的函数(为什么需要a并返回5 + 3)。你知道吗
  2. 它显示无限递归。你知道吗

更新

按照OPs要求。你知道吗

def add_three(number):
    return number + 3

相关问题 更多 >