Объясните пожалуйста что такое optional в discord.py (или вообще в python) и как решить проблему
Я хочу создать текстовый канал командой в определённой категории. Я всё сделал, но не могу добавить именно в категорию. Я поискал в интернете, ничего не нашёл (я новичок). У меня есть id категории но если я просто вставляю его:
await ctx.guild.create_text_channel(name=name, overwrites=overwrites, category = 774723755490410516)
то пишет что не тот тип:
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'int' object has no attribute 'id'
В документации написано что надо тип Optional, но я совсем не знаю что это такое.
Документация: https://discordpy.readthedocs.io/en/latest/api.html#discord.Guild.create_text_channel
Спасибо
Ответы (1 шт):
typing.Optional обозначает что указанный аргумент может быть как указанного типа (в данном случае CategoryChannel), так и None.
Для получения категории, как и любого другого канала по ID можно использовать Guild.get_channel(ID).
await ctx.guild.create_text_channel(name, category=ctx.guild.get_channel(850289294063283387))
# name - "позиционный" аргумент, его не обязательно указывать по имени ("var" вместо "name = var")
Либо вы можете использовать метод create_text_channel самого объекта категории: CategoryChannel.create_text_channel
category = ctx.guild.get_channel(850289294063283387)
await category.create_text_channel(name)
