gpt4 book ai didi

python - 了解赋值错误之前的引用

转载 作者:行者123 更新时间:2023-12-01 04:37:46 26 4
gpt4 key购买 nike

下面的代码,

def is_leaf(tree):
return type(tree) != list

def count_leaf(tree):
if is_leaf(tree):
return 1
branch_counts = [count_leaf(b) for b in tree]
return sum(branch_counts)

在表达式 sum(branch_counts) 中引用 branch_counts 时不会引发此类错误。

但是下面的代码,

def is_leaf(tree):
return type(tree) != list

def count_leaf(tree):
if is_leaf(tree):
return 1
for b in tree:
branch_counts = [count_leaf(b)]
return sum(branch_counts)

在表达式 sum(branch_counts) 中引用 branch_counts 时,确实会引发此类错误。

在第一种情况下,branch_counts 尚未通过计算列表理解表达式进行评估,为什么在第一种情况下不会抛出错误?

最佳答案

如果树为空,[],则 branch_counts 变量未初始化。

要使代码与第一个代码等效,请进行如下修改:

def count_leaf(tree):
if is_leaf(tree):
return 1
branch_counts = list()
for b in tree:
branch_counts.append(count_leaf(b))
return sum(branch_counts)

关于python - 了解赋值错误之前的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31448661/

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