我来自Java和C#背景和学习python。我想知道为什么这段代码在pycharm中给我一个错误,说
Unresolved Reference 'methodA'
使用此代码
def a():
print("hi")
def b():
a()
答案 0 :(得分:3)
此代码(您发布的整个代码)应该可以正常运行,因为名称a
已被引入全局范围:
def a():
print("hi")
def b():
a()
b() # call b, which in turn calls a
但是这段代码(您可能引用的代码)应该失败,因为名称a
是C
的成员。成员名称不在其他成员函数的范围内:
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)