У меня есть следующий класс:Создать экземпляр класса внутри одного класса и использовать один и тот же класс в качестве параметра
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])
мне нужно сделать followin (я думаю, что если я кладу весь контекст того, что я делаю, это будет missleading):
anotherList = []
for neighbor in inicial.neighbors():
anotherList.append(neighbor)
I J ust хочет иметь список с несколькими дополнительными атрибутами и методами. Проблема в том, что мне нужен этот класс для создания самих себя с объектом, который создает их как параметр в методе соседей. У меня есть testet все методы, указанные в коде, и они работают так, как ожидалось, но я просто думаю, что они не нужны для этого вопроса, и они сделают это очень длинным вопросом.
Я также проверил это 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. Тем не менее, я не понимаю до сих пор :(
Я довольно любитель, поэтому если у вас есть какие-либо предложения, все они приветствуются;)
Вы могли бы хотеть подкласс '' UserList' из collections', в то время как это не решение вашей О.П., я счел важным отметить. – krysopath