gpt4 book ai didi

python - `__contains__` 是否可能返回非 bool 值?

转载 作者:太空宇宙 更新时间:2023-11-03 12:15:46 24 4
gpt4 key购买 nike

文档说 __contains__ 应该 如果 item 在 self 中则返回 true,否则返回 false。但是,如果该方法返回一个非 bool 值 x,似乎 python 会自动将其转换为 bool(x)

有没有办法避免这种情况,并返回实际值 x?或者此功能行为是否直接在解释器中实现并且无法更改?

最佳答案

请注意,不是 __contains__ 将值转换为 bool 值,而是in 运算符调用 __contains__。与

class Foo(list):
def __contains__(self, v):
if super().__contains__(v):
return v
else:
return False

>>> f = Foo([1,2,3])
>>> f.__contains__(2)
2
>>> 2 in f
True

关于python - `__contains__` 是否可能返回非 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53351829/

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