"无返回语句却仍然返回非"

2024-09-21 17:17:09 发布

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

我的功能只是修改列表。但是,我不希望它返回任何东西,甚至不返回“None”,但它返回“None”。有办法解决这个问题吗?你知道吗


Tags: 功能none列表办法
1条回答
网友
1楼 · 发布于 2024-09-21 17:17:09

TL;DR:不,在Python中没有一种有意义的方法来处理None的默认返回。

在Python中,返回隐含的None最接近于“不返回任何内容”。这与例如C不同,在C中,void函数声明将阻止对变量的赋值。这种行为是Python语言一致性的一部分,因为

x = MyFunc()

必须在x中定义并存储一些值。类似地,使用例如

OtherFunc( 1, 2, MyFunc() )

或者

[ 1, 2, 3, MyFunc() ]

或者

MyFunc() * 3

所有人都需要有一些行为。使用None的隐含返回值,这些问题在Python中以特定的方式得到解决。你知道吗

它不必是这样的-原则上,如果有人要重新设计Python的这一部分,可能会有一些不同的自洽方法-例如,Python可以有一些特殊的值,这些值只能从函数调用中返回,如果发现它在任何其他可能引发一个错误。值得注意的是,在某些情况下,例如3 * MyFunc()None的返回值将以这种方式引发错误-但是您不能依赖于在基于函数定义的所有可能不需要的场景中立即发生这种情况。你知道吗

但是,Python返回隐式的None。更改此选项将影响以全局方式依赖于该行为的任何代码/库,或者为该语言添加尴尬的上下文解析需求,因为该特性必然需要在函数定义内部以及在何处使用这些函数。你知道吗

相关问题 更多 >