Yul*_*a V 3 python syntax nested-class
是否有一种简单的方法可以在保持所有3个级别的同时修复此错误?
从对象派生ClassA没有帮助.
提前致谢!
>>> class classA:
... class classB(object):
... def __init__(self):
... self.b = 3
... class classC(classA.classB):
... def __init__(self):
... super(classC, self).__init__()
... self.c = 4
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in classA
File "<stdin>", line 5, in classB
NameError: name 'classA' is not defined
Run Code Online (Sandbox Code Playgroud)
不.在您定义时classC,classA尚不存在.
它仅在其主体完全执行后创建.(从正文执行中创建的dict是类创建调用的一个参数class = type('classname', (superclass_1, superclass_2, superclass_3), said_dict}).)
最简单的方法是在同一级别定义它们.
如果绝对需要,您可以稍后修改它们:
class classA:
pass
class classB(object):
def __init__(self):
self.b = 3
class classC(classB):
def __init__(self):
super(classC, self).__init__()
self.c = 4
classA.classB = classB
classB.classC = classC
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |