我有以下课程:
class state(list):
def __init__(self,parent = None, path = None, *args):
list.__init__(self, *args)
self.n = len(self)
self.parent = parent
self.path = path
def neighbors(self):
lista = []
if self.__hasUp():
lista.append(state(Self,'Up',self.__swap(self.index(0),self.index(0) - 3))))
if self.__hasDown():
lista.append(state(Self,'Down',self.__swap(self.index(0),self.index(0) + 3))))
if self.__hasLeft():
lista.append(state(Self,'Left',self.__swap(self.index(0),self.index(0) - 1))))
if self.__hasRight():
lista.append(state(Self,'Right',self.__swap(self.index(0),self.index(0) + 1))))
return lista
我通常会创建一个类的实例,如下所示:
inicial = state(None,None,[1,2,5,3,4,0,6,7,8])
我需要做以下事情(我想如果我把我正在做的事情的整个背景,那将是误导性的):
anotherList = []
for neighbor in inicial.neighbors():
anotherList.append(neighbor)
我只想要一个包含额外属性和方法的列表。问题是我需要这个类来创建自身的istances与创建它们作为neighbor方法中的参数的对象。我已经测试了代码中引用的所有方法,它们按预期工作,但我认为它们不需要这个问题,它们会使它成为一个非常长的问题。
我还检查过此Declaring a class with an instance of it inside in Python,Create static instances of a class inside said class in Python和此Class constructor able to init with an instance of the same class object。但是,我还不明白:(
我很业余,所以如果你有任何建议,欢迎他们;)
答案 0 :(得分:1)
对不起..我试过,事实证明这很简单。这只是一个错误的开始。我在这里留下答案以防有人需要它,但是如果你建议我删除它(是否可能?)我会这样做。
class test(list):
def __init__(self,pa, name, *args):
list.__init__(self, *args)
self.name = name
self.par = pa
def create(self):
lista = []
lista.append(test(self,'a',[0,1]))
lista.append(test(self,'b',[0,2]))
return lista
致以最诚挚的问候,