这在python中是否有效:实例存储在实例列表中的父实例中。

时间:2017-03-19 17:59:57

标签: python list object instance

我试图从另一个类的实例创建一个类的实例。 所以我写了一些简单的东西,看它是如何工作的。 这个方法有效且有用,看起来它在这个例子中工作正常吗?或者它会产生问题,还是会使进一步的步骤变得更难?

import random

class family(object):

        def __init__(self,surname,numofmem,location):
            self.surname=surname
            self.numofmem=numofmem
            self.location=location
            self.relatives=[]
            self.rel2=None
            self.CreateMembers()

        def CreateMembers(self):
            for mem in range(0,self.numofmem):
                self.relatives.append(CreateAMember())

        def listMembers(self):
            for mem in self.relatives:
                print (mem.name+" "+self.surname+" lives in "+self.location)

class CreateAMember(object):

        listnames=["Aaron","Abbey","Abbie","Abby","Abdul","Abe","Abel","Abigail","Abraham"]

        def __init__(self):
            self.rnd=random.randint(0,len(self.listnames)-1)
            self.name=self.listnames[self.rnd]

myFamily=family("Reactor",5,"Canada")
myFamily.listMembers()

1 个答案:

答案 0 :(得分:0)

乍一看,我发现您的代码没有任何问题。 Python几乎可以通过引用解决所有问题,因此将对象存储在其他对象中并不一定会给你的内存带来问题,如果这就是你所要求的。例如。以下代码也完全合法:

class bla():
    def __init__(self):
        self.reference_to_self = self

您预期会出现什么样的问题?