首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python函数-字典作为输入-返回错误-有趣的行为

Python函数-字典作为输入-返回错误-有趣的行为
EN

Stack Overflow用户
提问于 2021-12-13 10:05:50
回答 2查看 48关注 0票数 0

美好的一天,辉煌的堆叠溢出社区。当输入作为字典时,我注意到关于Python函数的一个有趣的行为。

当我们使用空列表作为默认参数时,我们可以返回该列表,同时附加一些值。

代码语言:javascript
复制
def func_list(value,input=[]):
    return input.append(value)

我希望同样的事情适用于空字典作为一个论点。例如:

代码语言:javascript
复制
def func_dict(value,input={}):
    return input[value] = value

但是,Python会引发语法错误,我只能这样做:

代码语言:javascript
复制
def func_dict(value,input={}):
    input[value] = value
    return input

我想知道为什么?非常感谢!

PS。请随时修改问题,如果我对问题的表达不够清楚,请道歉!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-13 10:11:57

关键的区别是input.append(value)是一个表达式,而input[value] = value不是(它只是一个语句)。return语句只能将表达式作为参数(或不使用任何参数返回任何参数)。

你可以这样做:

代码语言:javascript
复制
def func_dict(value,input={}):
    return input.update({ value: value }) or input

它的工作原理是dict.update()不返回任何内容,因此我们返回(现在更新的) input。我知道这很难看,但我想不出更好的办法了。

票数 1
EN

Stack Overflow用户

发布于 2021-12-13 10:10:19

另外,在python中,单词input是一个受保护的单词,用于与用户的交互,您可能需要使用另一个参数名,因为您现在使用它的方式覆盖了默认函数。

以下是有关输入的文档:https://docs.python.org/3/library/functions.html#input

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70332884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档