在同一个 class 中创建一个 class 的实例,并使用相同的 class 作为参数
Create an instance of a class inside the same class and use the same class as parameter
我有以下 class:
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
我通常创建 class 的实例如下:
inicial = state(None,None,[1,2,5,3,4,0,6,7,8])
我需要做以下事情(我想如果我把我正在做的事情的整个背景都放在一起,那会误导人):
anotherList = []
for neighbor in inicial.neighbors():
anotherList.append(neighbor)
我只想要一个包含一些额外属性和方法的列表。问题是我需要这个 class 来创建自己的 istances 与创建它们的对象作为 neighbors 方法中的参数。我已经测试了代码中引用的所有方法并且它们按预期工作,但我只是认为它们不需要这个问题并且它们会使它成为一个非常长的问题。
我也检查过这个Declaring a class with an instance of it inside in Python, Create static instances of a class inside said class in Python and this 。但是,我还不明白:(
本人比较外行,大家有什么建议,欢迎指教;)
对不起..我试过了,结果很简单。这只是一开始的错误。我在这里留下答案以防有人需要它,但如果你建议我删除它(可能吗?)我会做的。
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
此致,
我有以下 class:
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
我通常创建 class 的实例如下:
inicial = state(None,None,[1,2,5,3,4,0,6,7,8])
我需要做以下事情(我想如果我把我正在做的事情的整个背景都放在一起,那会误导人):
anotherList = []
for neighbor in inicial.neighbors():
anotherList.append(neighbor)
我只想要一个包含一些额外属性和方法的列表。问题是我需要这个 class 来创建自己的 istances 与创建它们的对象作为 neighbors 方法中的参数。我已经测试了代码中引用的所有方法并且它们按预期工作,但我只是认为它们不需要这个问题并且它们会使它成为一个非常长的问题。
我也检查过这个Declaring a class with an instance of it inside in Python, Create static instances of a class inside said class in Python and this
本人比较外行,大家有什么建议,欢迎指教;)
对不起..我试过了,结果很简单。这只是一开始的错误。我在这里留下答案以防有人需要它,但如果你建议我删除它(可能吗?)我会做的。
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
此致,