Добавление объекта в список с функцией - PullRequest
0 голосов
/ 16 ноября 2018

Можно ли написать функцию внутри класса 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 голосов
/ 16 ноября 2018

Вы можете инициализировать список в __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']
0 голосов
/ 16 ноября 2018
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...