我正在努力與我的代碼,特別是子類。我有一個父類,它在初始化時會調用它的子類作爲一個屬性,以對象列表的形式。我看過很多帖子,一個人忘記打電話給父母的__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