【发布时间】:2020-09-12 05:12:50
【问题描述】:
我有一个场景,如果变量最初为 None,我需要为其赋值。
def sample(val,node):
if node == None:
node = val
else:
pass
if __name__ == "__main__":
arr = [1, 2]
node = None
for x in range(len(arr)):
sample(arr[x], node)
在第一次迭代中节点是None,所以分配了一个值。现在该节点已被分配了一个值。第二次迭代的时候,仍然作为None传递。是不是因为它作为参数传递给示例函数。
我尝试如下删除节点参数。
node = None
def sample(val):
if node == None:
node = val
else:
pass
if __name__ == "__main__":
arr = [1, 2]
for x in range(len(arr)):
sample(arr[x])
这会引发错误提示
UnboundLocalError:赋值前引用了局部变量“节点”
第二次迭代时,节点的值必须为 1。需要做什么来实现这一点?
【问题讨论】:
标签: python-3.x iteration global-variables local-variables