gpt4 book ai didi

python - Python 中的嵌套函数作用域

转载 作者:行者123 更新时间:2023-11-28 19:51:49 26 4
gpt4 key购买 nike

我有以下函数遍历嵌套树并打印结果

def walk_tree(tree):   
def read_node(node):
print node
for n in node['subnodes']:
read_node(n)
read_node(tree)

如果我想返回一个包含从遍历树中收集到的数据的 txt,我认为以下方法可行:

def walk_tree(tree):
txt = ''
def read_node(node):
txt += node
for n in node['subnodes']:
read_node(n)
read_node(tree)

但是txt似乎不在read_node的范围内。有什么建议吗?谢谢

最佳答案

txt 可以在 read_node 中访问,我认为这只是 += 的一些问题,而 txt 是不在 read_node 的本地范围内。

>>> def a():
... x = ""
... def b():
... x += "X"
... b()
... print x
...
>>> a()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in a
File "<stdin>", line 4, in b
UnboundLocalError: local variable 'x' referenced before assignment
>>>
>>>
>>> def a():
... x = []
... def b():
... x.append("X")
... b()
... print "".join(x)
...
>>> a()
X

无论如何,您应该使用列表和 "".join(...) 而不是 str += ...

关于python - Python 中的嵌套函数作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2363266/

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