-1

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

在这里我写了一些东西

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 个人类,并且还可以访问这些对象的属性..

4

2 回答 2

1

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

当您拥有当前拥有的东西时:

WalterFamily.ListMembers

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

WalterFamily.ListMembers()
于 2018-02-18T00:25:14.410 回答
1

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

于 2018-02-18T00:29:59.493 回答