【问题标题】:How does discord.py rewrite turn names of functions into commands?discord.py rewrite 如何将函数名变成命令?
【发布时间】:2021-07-01 04:24:54
【问题描述】:

Discord.py rewrite 中的命令示例函数如下:

bot = commands.Bot(command_prefix="$", help_command=None)
@bot.command(pass_context=True)
async def say(ctx, *, message):
    await ctx.send(message)

不和谐调用函数的方式是$say something。 Discord.py 是如何知道函数 say 的名称以便使其成为命令的?

【问题讨论】:

    标签: python discord discord.py


    【解决方案1】:

    函数具有__name__ 属性,该属性返回与函数名称对应的字符串

    >>> def foo():
    ...     print("Inside foo")
    ... 
    >>> foo.__name__
    'foo'
    

    在装饰器中:

    >>> def my_decorator(func):
    ...     def wrapper(*args, **kwargs):
    ...         print(f"The function name is: {func.__name__}")
    ...         return func(*args, **kwargs)
    ...     return wrapper
    ... 
    >>> 
    >>> @my_decorator
    ... def foo():
    ...      print("Inside foo")
    ... 
    >>> foo()
    'The function name is: foo'
    'Inside foo'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      • 2020-10-10
      • 1970-01-01
      • 1970-01-01
      • 2020-09-11
      • 2021-09-13
      • 2020-11-27
      相关资源
      最近更新 更多