gpt4 book ai didi

python - 谁能给我解释一下 "guardian pattern"

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

尝试搜索监护人模式,但我找不到任何可以回答我问题的东西,所以我又来了。在我正在阅读的书中,作者使用了一行他称之为“监护人模式”的代码,但我并不真正理解它是如何工作的。这是示例,如果有人能向我解释一下,我将不胜感激。

while True:
line = raw_input('> ')
if len(line) > 0 and line[0] == '#' :
continue
if line == 'done':
break
print line
print "done!"

那么为什么,如果行的长度 > 0 并且行 [0] == '#' :如果我什么都没有就按回车键,这不会出错吗?该行不会为 0,因此该行不 > 0 吗?如果您将原始代码放入其中

if line[0] == '#' : 

当你按下回车时它会出错。

最佳答案

so why, if the length of the line > 0 and line[0] == '#' : does it not error if I just hit enter with nothing there.

不,它不会抛出错误。 Python 使用惰性求值,它可以使用 运算符进行短路。查看docs .

换句话说, bool 表达式的第二部分,即 line[0] == '#',只有在第一部分为 True 时才会被计算.

我相信这就是为什么作者称其为守卫模式的原因,这样表达式的第一部分就避免了(守卫)第二部分可能出现的错误表达式的一部分。

如果您删除第一部分,就像您展示的示例中那样,那么您将尝试访问 line (line[0]) 的第一个元素,当 line 中没有元素时。

关于python - 谁能给我解释一下 "guardian pattern",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43419062/

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