在 python 中将对象声明为另一个对象的属性

Declare objects as an attribute of another object in python

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

这里写了点东西

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 个人嵌套在一个家庭中,并接触到这些对象的属性..

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

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

WalterFamily.ListMembers

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

WalterFamily.ListMembers()

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