#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. Отлично! Большое вам спасибо!