Как вы вызываете конкретный объект при использовании переменной для создания экземпляра? - PullRequest
0 голосов
/ 07 февраля 2019

Весь код, который я видел для создания экземпляра объекта, использовал переменную, а использование экземпляра объекта недолговечно, как игра.Новая игра заменяет этот экземпляр, и нет необходимости вспоминать предыдущие объекты.Или я видел созданные вручную экземпляры, не использующие переменную catchall.Как c1 и c2 и т. Д. И т. П.

class Child:
    def __init__ (self, name,):
        self.name = name


child = Child(name)

Я создал несколько экземпляров своего объекта и прикрепил их в другом классе, добавив их в список.Однако, если бы я изменил атрибут экземпляра, я не знаю, как вызвать его с помощью универсальной переменной child, используемой для создания экземпляра.Я могу сделать это, когда я использовал c1 или c2 для создания экземпляра: как c1.name.Но мне бы пришлось вручную написать c1 или c2.По сравнению с тем, когда я звоню child.name, я возвращаю только последнего созданного потомка.

У кого-нибудь есть предложение?

1 Ответ

0 голосов
/ 07 февраля 2019

Как вы упомянули, вы можете использовать список для хранения экземпляров создаваемого вами объекта.Например, основываясь на имеющемся коде, вы можете сделать что-то вроде:

my_objects = []

for name in ('one', 'two', 'three', 'four'):
    child = Child(name)
    my_objects.append(child)

Затем, если вы захотите вызвать второй созданный вами объект, вы можете удалить его из списка:

child = my_objects[1] # this is the second one you created
print(child.name) # this prints 'two'
child.name = 'second' # now the name is second!

В качестве альтернативы вы можете напрямую позвонить my_objects[1].name = 'second'.

...