Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 26, 2019 16:59:30

panama555
Зарегистрирован: 2019-02-19
Сообщения: 175
Репутация: +  4  -
Профиль   Отправить e-mail  

как создать имена новых объектов?

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

Офлайн

#2 Фев. 26, 2019 17:27:49

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

как создать имена новых объектов?

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())



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Фев. 26, 2019 17:42:26)

Офлайн

#3 Фев. 26, 2019 19:07:03

panama555
Зарегистрирован: 2019-02-19
Сообщения: 175
Репутация: +  4  -
Профиль   Отправить e-mail  

как создать имена новых объектов?

То что нужно.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version