嵌套类本身未定义 [英] Nested class is not defined in itself
本文介绍了嵌套类本身未定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
以下代码成功打印OK
:
class B(object):
def __init__(self):
super(B, self).__init__()
print 'OK'
class A(object):
def __init__(self):
self.B()
B = B
A()
,但以下应该与上面的工作原理相同的内容引发了NameError: global name 'B' is not defined
but the following which should work just as same as above one raises NameError: global name 'B' is not defined
class A(object):
def __init__(self):
self.B()
class B(object):
def __init__(self):
super(B, self).__init__()
print 'OK'
A()
为什么?
推荐答案
B
在A
类的范围内可用-请使用A.B
:
B
is available in the scope of A
class - use A.B
:
class A(object):
def __init__(self):
self.B()
class B(object):
def __init__(self):
super(A.B, self).__init__()
print 'OK'
A()
请参阅有关 Python作用域和命名空间.
这篇关于嵌套类本身未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文