Найти - Пользователи
Полная версия: Список объектов класса. Нужно другое содержимое.
Начало » Python для новичков » Список объектов класса. Нужно другое содержимое.
1 2
IgorDubkov
Помогите, пожалуйста, получить вместо списка:
__main__.Igrok object at 0x0000000002A8F160>, <__main__.Igrok object at 0x0000000002A8F190

список с переменными-объектами класса: igr, igr1

Не соображу никак…
 class Bitva:
    """ ____ """
    def __init__(self):
        self.spis = []
    def spisok_igrok(self, name):
        self.spis.append(name)
            
class Igrok:
    """ ____ """
    def __init__(self):
        bit.spisok_igrok(self)
    def __str__(self):
        pass
#_____________main_____________
bit = Bitva()
igr = Igrok()
igr1 = Igrok()
print(bit.spis)
xam1816
IgorDubkov
список с переменными-объектами класса: igr, igr1
класс у вас Igrok, а igr igr1 это экземпляры этого класса,
__main__.Igrok object at 0x0000000002A8F160>, <__main__.Igrok object at 0x0000000002A8F190,это ссылки на них в памяти, что нужно вам приведите пример
IgorDubkov
Спасибо!
Мне нужен список, содержащий igr, igr1 (как это правильно назвать? переменные экземпляров?..)

Как реализовать следующую логику?

Инстанцируется экземпляр класса Bitva.
—–
Инстанцируются несколько экземпляров класса Igrok,
создавая список себя в экз класса Bitva.
—–
Запускается метод экземпляра класса Bitva,
выбирающий случайный экз класса Igrok.
—–
Управление переходит в экз класса Igrok.
xam1816
 class Bitva:
	""" ____ """
	def __init__(self):
		self.spis = []
	def spisok_igrok(self, name):
		self.spis.append(name)
class Igrok:
	""" ____ """
	def __init__(self, name_variablie):
		bit.spisok_igrok(name_variablie)
	def __str__(self):
		pass
# _____________main_____________
bit = Bitva()
igr = Igrok('igr')
igr1 = Igrok('igr1')
print(bit.spis)

IgorDubkov
Спасибо!

Думаю в Python нет смысла делать, что я хотел, так как может быть несколько переменных, указывающих на один и тот же экземпляр.

С Вашей подсказкой пробую реализовать логику:
Инстанцируется экземпляр класса Bitva.
—–
Инстанцируются несколько экземпляров класса Igrok,
создавая список себя в экз класса Bitva.
—–
Запускается метод экземпляра класса Bitva,
выбирающий случайный экз класса Igrok.
—–
Управление переходит в экз класса Igrok.
marvellik
IgorDubkov
так как может быть несколько переменных, указывающих на один и тот же экземпляр
зачем? зачем создавать переменные указывающие на один и тот же экземпляр???
AD0DE412
ерунда каката
хотя
 class Players:
    def __init__(self, quantity=0, piece=None):
        self.players = {}
        for i in range(quantity):
            self.players.update({i: piece})
            
    def get_player(self, num):
        return self.players[num]
        
test = Players(quantity=5, piece="obj")
print(test.get_player(2))
IgorDubkov
marvellik
зачем? зачем создавать переменные указывающие на один и тот же экземпляр???
Я искал атрибуты, связанные с именем объекта класса. Не нашел. В теориях объяснили, что такого инструмента не может быть, так как см. про переменные.
Ocean
IgorDubkov
Если забыть про классы и атрибуты. Что ты хочешь сделать?
Можешь описать словами логику?
Для примера:
“Создаем битву. В битве могут участвовать не менее 2 и не более 6 игроков. Число игроков в битве всегда должно быть четным. Генерируем 10 игроков с характеристиками: имя, уровень, класс, пол, раса и тому подобное.
Из 10 игроков случайным образом выбираем 4, которые будут участвовать в текущей битве. Список игроков участников битвы сохраняем и так далее”
IgorDubkov
Ocean
IgorDubkov
Если забыть про классы и атрибуты. Что ты хочешь сделать?
Можешь описать словами логику?
Для примера:
“Создаем битву. В битве могут участвовать не менее 2 и не более 6 игроков. Число игроков в битве всегда должно быть четным. Генерируем 10 игроков с характеристиками: имя, уровень, класс, пол, раса и тому подобное.
Из 10 игроков случайным образом выбираем 4, которые будут участвовать в текущей битве. Список игроков участников битвы сохраняем и так далее”

Сыну 12 лет. Учебный 2020 - 2021 год провел онлайн с ГАОУ ДПО «ТемоЦентр». Закончили словарями (Dict). За год(!) дошли до словарей. Он читает Майкла Доусона. Сам. Функции осилил. Не разобрался с классами. Просит практического обоснования применения классов. Я вспомнил Бойцовский Клуб. Создаем битву.

Игра примитивная консольная на одной машине.
В проекте классы Игрок, Комп(Игрок), Битва, Игра.
В перспективе классы Меч, Щит.
Псевдокод пока в движении.
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