我正在努力与我的代码,特别是子类。我有一个父类,它在初始化时会调用它的子类作为一个属性,以对象列表的形式。我看过很多帖子,一个人忘记打电话给父母的__init__()
。我的问题不同,因为父母正在调用孩子班,我不想打电话给他。Python子类不识别继承父类
我收到以下错误:
NameError: name 'bundle' is not defined
我很困惑,因为它被明确定义为父类。有任何想法吗?
class bundle(object):
"""Main object to hold graphical information"""
def __init__(self, size,nzone):
self.size = size
self.rows = math.sqrt(size)
self.cols = math.sqrt(size)
subchans = []
r = 1
c = 1
for i in range (1,self.size):
subchans.append(bundle.subbundle(r,c,self.rows,self.cols))
r += 1
if r > self.rows :
r = 1
c += 1
class subbundle(bundle):
""" Defines geometry to represent subbundle"""
def __init__(self, row, col, rows,cols):
名字'bundle'直到*类定义完成后才定义,所以'subbundle'不能从它继承*和*是一个嵌套类。这个例子并不清楚你为什么要'subbundle'被继承或嵌套。 – jonrsharpe 2014-12-02 16:45:16
您不能从“捆绑”方法调用任何“子捆绑”方法。这是另一种方式:“子捆绑”可能会调用“捆绑”方法。子类化是为了专门化对象,而不是引起孩子 – 2014-12-02 16:46:14
,因为你正在做嵌套在另一个类里面的类,它不知道'bundle'是什么,我想它应该是'subbundle(self)'而不是。但你可能真正想要的是让'subbundle(bundle)'它自己的类,不嵌套 – TehTris 2014-12-02 16:46:21