Переменная класса сжимается - PullRequest
0 голосов
/ 03 августа 2020
• 1000 словарь) со значениями. Декоратор применяется в других модулях к функциям, поэтому они регистрируются в классе. Это работает правильно (я могу сломаться и увидеть, что переменная класса заполнена). Однако, когда я запускаю код, который заставляет меня искать эти функции (в переменной класса), переменная класса является пустым словарем.
event_cog.py
class Events(commands.Cog):
       REACTION_HANDLERS = dict()

def handle_reaction(reaction_emoji):
    """
    allows you to register a function as a specific reaction handler for the embed representing an event
    """

    def inner(func):
        Events.REACTION_HANDLERS[reaction_emoji] = func
        return func

    return inner

import b.py
b.py
import event_cog
@event_cog.handle_reaction(emo(":white_check_mark:", use_aliases=True))
async def event_white_check_mark_handler(
    self, ctx, channel: TextChannel, member: discord.Member, message: Message
):

, если я установил точку останова в декораторе после два исполнения, которые я вижу

str(Events.REACTION_HANDLERS)
'{\'✅\': <function event_white_check_mark_handler at 0x0584FBB8>, \'❌\': <function event_x_handler at 0x05835D68>}'

В любой момент позже, когда мой код захочет получить доступ к этим функциям, хотя ...

str(Events.REACTION_HANDLERS)
'{}'
...