全局变量给错误

问题描述:

g=0 
def smooth(self, a, b): 
    k=0 
    c = self.name[a] 
    d = self.name[b] 
    e,f=c,d 
    while(e.get_p()!=f.get_p() and e.get_p()!=None and f.get_p()!=None): 
     k+=1 
     e=e.get_p() 
     f=f.get_p() 
    if(e.get_p==None and f.get_p()!=None): 
     global g 
     g+=1 
     d=d.get_p() 
     return self.smooth(a,d.name) 
    return(k,g) 

忽略调用的函数,但是在if语句它没有更新克价值,给了一个错误全局名称“G”是不是在用value.Please帮助全局变量给错误

调用定义
+1

是所有的代码?你确定这不在'class'内吗? – slezica

在此代码:

g=0 
def smooth(self, a, b): 

smooth看起来像一个类的实例方法,以及g因此看起来像一个类变量,而不是一个全球性的,所以global关键字不会活像ķ。请尝试将其改为MyClass.g(其中“MyClass”是您班级的实际名称)或__class__.g

+1

+1用于检测显然缺少密钥行的问题。好眼睛 – slezica