Передача переменной из одного класса в другой
Дилетант в разработке, но учусь. Пишу тикет-бота, задача которого создавать тикет для пользователя по нажатию на кнопку "CreateTicket".
class Tickets(disnake.ui.View): # Класс, отвечающий за создание тикета пользователем
def __init__(self):
super().__init__(timeout=None)
self.ticket_opener = None # Атрибут для хранения пользователя, открывшего тикет
@disnake.ui.button(label='Открыть тикет', style=disnake.ButtonStyle.green, custom_id="GiveTiket:Green")
async def CreateTicket(self, button: disnake.ui.Button, interaction: disnake.MessageInteraction):
self.ticket_opener = interaction.user # Запоминаем пользователя, открывшего тикет
overwrites = {
guild.default_role: disnake.PermissionOverwrite(read_messages=False),
user: disnake.PermissionOverwrite(read_messages=True)
}
await private_channel.send(embed=embed1, view=Tickets3())
Проблема заключается во 2 классе, в котором содержится функционал для переоткрытия тикета модератором. Логика работы заключается в том, что каналу необходимо переназначить права для этого конкретного юзера, поэтому необходимо передать переменную user, которая содержит данные о человеке и по которой удастся назначить на него права overwrites.
class Tickets12(disnake.ui.View): # Класс отвечает за переоткрытие тикета модератором
def __init__(self):
super().__init__(timeout=None)
@disnake.ui.button(label="Открыть", style=disnake.ButtonStyle.grey, custom_id="ReopenTicket1:grey")
async def ReopenTicket1(self, button: disnake.ui.Button, interaction: disnake.MessageInteraction):
private_channel = interaction.channel
# Восстановление прав для чтения у пользователя, открывшего тикет
if private_channel.category:
overwrites = private_channel.category.overwrites
if self.ticket_opener in overwrites:
overwrite = overwrites[self.ticket_opener]
overwrite.update(read_messages=True)
await private_channel.set_permissions(self.ticket_opener, overwrite=overwrite)
Пытаюсь передать данные с класса в класс через атрибут self.ticket_opener, но по итогу при тесте я получаю ошибку AttributeError: 'Tickets12' object has no attribute 'user'. Что я не понимаю и почему не передаются данные? Спасибо!