gpt4 book ai didi

python - 哨兵对象及其应用?

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:04 25 4
gpt4 key购买 nike

我知道在 python 中内置的 object() 返回一个哨兵对象。我很好奇它是什么,但主要是它的应用。

最佳答案

object 是 python 3 中所有其他类都继承自的基类。对于一个普通的旧对象,您无能为力。但是,对象的身份 可能会有用。例如 iter函数采用一个 sentinel 参数来指示何时停止终止。我们可以为此提供一个 object()。

sentinel = object()

def step():
inp = input('enter something: ')
if inp == 'stop' or inp == 'exit' or inp == 'done':
return sentinel
return inp

for inp in iter(step, sentinel):
print('you entered', inp)

这将要求输入,直到用户键入停止、退出或完成。我不确定什么时候带哨兵的 iter 比生成器更有用,但我想它还是很有趣。

我不确定这是否回答了您的问题。需要说明的是,这只是 object 的一个可能应用。从根本上说,它在 python 语言中的存在与它是否可用作哨兵值无关(据我所知)。

关于python - 哨兵对象及其应用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39313943/

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