Python-为变量分配值

问题描述

我有一种情况,如果变量初始值是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)