在同一个类中创建一个类的实例,并使用与参数

时间:2017-01-27 13:10:02

标签: python class oop breadth-first-search

我有以下课程:

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 PythonCreate static instances of a class inside said class in Python和此Class constructor able to init with an instance of the same class object。但是,我还不明白:(

我很业余,所以如果你有任何建议,欢迎他们;)

1 个答案:

答案 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

致以最诚挚的问候,