Python 2.7如何从存储在不同类中的列表中访问由一个类创建的对象

时间:2017-04-05 16:52:08

标签: python python-2.7 list class inheritance

我尝试创建一个用户类,用于存储有关用户的某些属性,另一个类User_Review,其中包含由用户类创建的对象/实例的列表。

numpy

要回答zondo和juanpa.arrivillaga,User的目的是创建具有基本信息的对象,而User_Review是一种方法,我希望能够通过其他方法对用户列表进行操作。 User_Review类,例如具有将用户添加/删除到用户列表末尾的方法,或显示某些信息(例如,仅限名称)。

1 个答案:

答案 0 :(得分:0)

出于您的目的,我认为您可以而不是在类中创建user_objectsuser_list列表,只需将其保留在User_Review内(因为您希望它们的引用是存储在另一个类中),并删除User内的一个,同时将创建的User对象从user_list方法内部追加到__init__而不是{{ 1}}。

在实践中,这看起来类似于以下内容。

user_objects

使用class User(object): def __init__(self, name, age): self.name = name self.age = age User_Review.user_list.append(self) class User_Review(object): user_list = [] user1 = User('leila', 23) user2 = User('carter', 43) 正确输出print(User_Review.user_list[0].name)打印出第一位用户的姓名。

然而,这种方法似乎非常直观:

  • carter类继承User_Review对我来说没有任何逻辑意义,因为您不希望在User中使用change_age这样的方法如果碰巧在User_Review中实现的话。但是,您希望能够访问每个User对象中的数据,这可以通过访问列表中所需的User来完成。

  • 按照目前的情况,User没有任何实际意义,只需一个常规清单即可实现同样的目的;但是,如果有计划实施依赖于创建的多个或所有User_Review个对象的数据的方法,那么这可能是一个可行的解决方案。

此问题的其他解决方案可能是仅在User类中创建列表,只使用User访问该列表并执行所需的操作。或者更复杂地从这两个类创建一个单独的类,专门用于存储,组织和从数据库中检索用户。