gpt4 book ai didi

python - 使用 "is"来检查变量中包含哪个函数是个好主意吗?

转载 作者:行者123 更新时间:2023-12-02 10:43:54 25 4
gpt4 key购买 nike

我有一个包含函数的变量。

def foo(x):
return x + 42

def bar(x):
return x - 42

my_var = foo

我想检查该函数是否是某个函数。我应该使用 is==

my_var == foo
my_var == bar

my_var is foo
my_var is bar

两者都返回我所期望的。

最佳答案

对于函数对象来说它们是相同的。 == 运算符调用 __eq__ 函数来执行比较。 function 对象未定义 __eq__ 方法:

>>> def foo():
... pass
...
>>> foo.__eq__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'function' object has no attribute '__eq__'

因此解释器使用 PyObject 中的默认实现:

res = (v == w) ? Py_True : Py_False;

这基本上是一个指针比较,本质上与is相同。

关于python - 使用 "is"来检查变量中包含哪个函数是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58758146/

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