问题描述
我有一种情况,如果变量初始值是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传递。是因为它作为参数传递给了样本函数。
我尝试如下删除节点参数。
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。要达到这个目的需要做什么?
解决方法
你是说
node = None
def sample(val):
global node
if node is None:
node = val
else:
pass
if __name__ == "__main__":
arr = [1,2]
for x in range(len(arr)):
sample(arr[x])
print(node)