是否可以在类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)
我想要一个对象列表,以便在打印列表时得到所有已创建对象的列表。
答案 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']