2016-07-22 114 views
-5

我来自Java和C#背景,学习python。我很奇怪,为什么这一段代码给我一个错误在pycharm,说无法从函数调用函数Python

Unresolved Reference 'methodA' 

与此代码

def a(): 
     print("hi") 

    def b(): 
     a() 
+1

你打电话给methodA和方法叫做? – AK47

+1

它在课堂上吗?试试'def b(self):self.a()' –

+0

它对我来说工作得很好,而且IIRC,python中没有任何'Unresolved Reference'错误? – noteness

回答

3

此代码(您发布的全部代码)应该很好地工作,因为这个名字a已经引入到全球范围:

def a(): 
    print("hi") 

def b(): 
    a() 

b() # call b, which in turn calls a 

但这种代码(你很可能从报价)失败了,因为这个名字aC的成员。会员名称不是其他成员函数内范围:

class C: 
    def a(): 
     print("hi") 

    def b(): 
     a() 
o = C() 
o.b() # should fail for several reasons. 

还要注意的是,不像C++或Java的隐this指针,必须始终明确使用了self参考。试试这个:

class C: 
    def a(self): 
     print("hi") 

    def b(self): 
     self.a() 

o = C() 
o.b() # calls C.b(o), which in turn calls C.a(o)