Найти - Пользователи
Полная версия: как создать имена новых объектов?
Начало » Python для новичков » как создать имена новых объектов?
1
panama555
Привет!
У меня в программе создан(объявлен) класс с названием Ball
Если я пишу
x=Ball()
то появляется объект класса Ball, который может вызывать все методы которые определены в классе.
Мне необходимо создавать различное количество объектов класса Ball в зависимости от ситуации.
Я попробовал сделать так:
while total<10: # total -переменная которая считает объекты
x=Ball()
total+=1
но возникает вопрос: как менять имя объекта при его создании
В данном случае у меня, видимо должно получиться 10 объектов с одним и тем же именем
Подскажите, как решить этот вопрос?
Спасибо
PEHDOM
panama555
В данном случае у меня, видимо должно получиться 10 объектов с одним и тем же именем
скорее всего нет, у вас полчится один обьект,котороый будет создан последним, хотя тут конечно много зависит от того чего там в этом обьете Ball() понаписано.

panama555
но возникает вопрос: как менять имя объекта при его создании
тут вопрост не только как менять, а и как потом к ним обращаться.
вариантов несколько , вместо переменной использовать список или словарь. Также можно почти любому обьекту(короме locals, и класса с __slots__) добавить атрибут воспользовавшись встроеной функцией setattr()
 import sys
class Ball():
    pass
# в список
balls = []
for i in range(10):
    balls.append(Ball())
print(balls)
# в словарь
balls = {}
for i in range(10):
    balls[str(i)] = Ball()
print(balls)
# в глобалс
for i in range(10):
    setattr(sys.modules[__name__], 'ball{}'.format(i), Ball())
print(ball5)
print(ball9)
print(globals())
panama555
То что нужно.

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB