在python

时间:2018-02-18 00:15:39

标签: python oop nest-nested-object

我尝试创建一个对象树而不是类。我的意思是我不想在原型级别中创建对象之间的关系,但是在实例级别中,因此对象之间的关系将通过代码来解决。

我在这里写了一些东西

class human :

    def  __init__ (self,Name,Surname,Gender,Age,Father,Mother) :

        self.Name = Name
        self.Surname = Surname
        self.Gender = Gender
        self.Age = Age
        self.Father = Father
        self.Mother = Mother

class family :

    def __init__ (self,Surname,Members) :

        self.Surname = Surname
        self.Members = Members

    def ListMembers (self) :

        for member in self.Members :

            print (self.Surname +' family member ' +member.Name + ' '+ member.Surname + ' is ' + member.Age + " years old ")


human1 = human( 'Mary','Walter','Female','42','Jason White','Sally White')
human2 = human('Charles', 'Walter', 'Male', '45', 'Samuel Ribbon', 'Angie Ribbon')
human3 = human('Claire', 'White', 'Female', '16', 'Charles Walter', 'Mary Walter')

WalterFamily = family('Walter',(human1,human2,human3))

WalterFamily.ListMembers

当我运行此代码时,WalterFamily.ListMembers不会打印任何内容。

在另一个对象中嵌套对象的确切方法是什么? 就像我试图在这里做的那样:将3个人嵌入一个家庭中,并达到这些物体的属性..

2 个答案:

答案 0 :(得分:1)

最后一行代码不是你想要的。属于某个类的所有函数(如ListMembers函数)都是存储在变量名中的函数。

当你拥有目前拥有的东西时:

WalterFamily.ListMembers

您只打印存储在ListMembers变量中的函数对象。要实际调用它,您需要添加括号。

WalterFamily.ListMembers()

答案 1 :(得分:1)

在Python中,一切都是对象,包括函数。所以WalterFamily.ListMembers只是对象的引用。要调用您需要的功能WalterFamily.ListMembers()