gpt4 book ai didi

Python 嵌套函数不等于其自身

转载 作者:行者123 更新时间:2023-12-01 06:45:11 24 4
gpt4 key购买 nike

这个简单的 Python 代码得到“False”。

def foo():
def bar():
return 0
return bar
print(foo() == foo())

当我请求时

print(foo(),foo())

我明白了

<function foo.<locals>.bar at 0x03A0BC40> <function foo.<locals>.bar at 0x03C850B8>

那么Python每次都会将bar函数的结果存储在新的内存槽中吗?如果有人解释它在幕后是如何工作的,以及如何稍微修改这段代码以获得“True”(这对我来说仍然是合乎逻辑的!),我会很高兴。

最佳答案

每个 def 语句定义一个新函数。相同的名字和 body 并不重要。你基本上是在做这样的事情:

def foo():
pass

old_foo = foo

def foo():
pass

assert old_foo == foo # will fail

关于Python 嵌套函数不等于其自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59254023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com