Создание более одного объекта в Python без использования префиксного имени для объекта

#python-3.x #oop

#python-3.x #ооп

Вопрос:

Если я запущу этот код:

 class A():
   def __init__(self): 
      print(self)
a = A() 
b = A()
  

вывод:

 <__main__.A object at 0x7fe4378b4b70>
<__main__.A object at 0x7fe4371ce198>
  

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

Но если я выполню следующее, не указывая имя объектам:

 class A():
   def __init__(self): 
      print(self)
A() 
A()
  

вывод:

 <__main__.A object at 0x7f34e5840b70>
<__main__.A object at 0x7f34e5840b70>
  

Тогда результат будет таким же! Как бы я получил разные объекты, не присваивая каждому объекту именованную переменную?

Комментарии:

1. A(), A() создало бы анонимный кортеж с 2 уникальными объектами. Вам нужно получить доступ к этим объектам после того, как они были созданы?

2. Я хочу создать более одного объекта с циклом for, просто используя A() внутри цикла for. Да, мне нужно получить доступ к этим объектам после их создания.

Ответ №1:

Продолжая ваш комментарий, как насчет использования списка?

 class A():
    def __init__(self): 
        print(self)

objects = [A() for _ in range(5)]
  

вывод:

 <__main__.A object at 0x0105F890>
<__main__.A object at 0x01190830>
<__main__.A object at 0x011908B0>
<__main__.A object at 0x011908D0>
<__main__.A object at 0x011908F0>
  

Комментарии:

1. Отлично! Большое вам спасибо!