使用功能将对象添加到列表中

时间:2018-11-16 17:35:53

标签: python oop

是否可以在类myClass中编写一个将创建的对象添加到列表中的函数? 我已经写过def addInList(self):,但是我不知道如何获取已创建的对象,以便可以将其附加到列表中。

我想要一个程序,当您调用函数时会创建一个对象,并将其自动添加到列表中。

这是代码:

class myClass:

    def __init__(self, name, city):

        self.name = name
        self.city = city

    def addInList(self):
        pass


    def __str__(self):

        return "Name: {}\nCity: {}\n".format(self.name, self.city)


First = myClass("Mike","New York")
Second = myClass("Steve", "Los Angeles")

print(First)
print(Second)

我想要一个对象列表,以便在打印列表时得到所有已创建对象的列表。

2 个答案:

答案 0 :(得分:0)

class myClass():

    list_of_instances = []

    def __init__(self, name, city):    
        self.name = name
        self.city = city     

    def __str__(self):
        return "Name: {}\nCity: {}\n".format(self.name, self.city)

    def addInList(self):
        self.list_of_instances.append(self)

First = myClass("Mike","New York")
Second = myClass("Steve", "Los Angeles")
First.addInList()

print(First.list_of_instances)    
# [<__main__.myClass at 0x7fee69cd6c18>]

Second.addInList()

for i in First.list_of_instances:
    print(i)

输出:

Name: Mike
City: New York

Name: Steve
City: Los Angeles

答案 1 :(得分:0)

您可以在__init__(self)中初始化一个列表,然后在方法中追加到该列表:

class myClass:

    def __init__(self, name, city):
        self.name = name
        self.city = city
        self.lst = []

    def addInList(self):
        self.lst.extend([self.name, self.city])

现在,您可以像创建对象一样并调用函数addInList()<object>.lst给出创建的列表。

First = myClass("Mike","New York")
First.addInList()

print(First.lst)
# ['Mike', 'New York']