【问题标题】:Python - Assign value to the variablePython - 为变量赋值
【发布时间】: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


    【解决方案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)
    

    【讨论】:

    • 如果节点为无,则将变量分配给节点变量。第二次迭代时,节点变量还是None。
    • 是的,谢谢..你能解释一下为什么我用的那个有用吗
    • 找不到节点变量。可以在 def 中将其设置为全局。
    猜你喜欢
    • 2016-01-24
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 2022-12-07
    • 2011-09-23
    • 2013-09-13
    • 2015-01-26
    相关资源
    最近更新 更多