def message_command(**kwargs): # Декоратор
def wrapper(function):
function.message_command_kwargs = kwargs
function.command = kwargs["command"]
if kwargs["args"]:
function.args = kwargs["args"]
return function
return wrapper
class Aliases:
@property
def commands(self) -> tuple:
return (
self.new_alias, self.aliases
)
@message_command(
command="...",
args={},
usage="",
description=""
)
async def new_alias(self, message: Message):
...
@message_command(
command="",
args={},
description=""
)
async def aliases(self, message: Message):
...
def setup(bot: Bot, dp: Dispatcher):
aliases = Aliases(bot)
print(aliases.commands)
Вывод в консоль:
(<\bound method Aliases.new_alias of <\aliases.py.Aliases object at 0x7fcf55c104c0>>, <\bound method Aliases.aliases of <\aliases.py.Aliases object at 0x7fcf55c104c0>>)
Проблема в том, что у двух функций, одинаковые адреса, как это испаравить, и почему это случилось?
мне нужно пройтись циклом по этим методам которые возвращает функция commands
for function in aliases.commands:
dp.register_message_handler(function, lambda message: command_check(message, function.command))
Но так как адреса одинаковые, работает всё не так как нужно.
Как я тогда могу получить адрес каждой функции?