【问题标题】:TypeError: 'Member' object is not callableTypeError:“成员”对象不可调用
【发布时间】:2022-01-16 14:11:07
【问题描述】:

我的代码:

global Vc
global Tune
try:
    Vc = await stage.connect()
    Member = guild.me(config["bot_id"])
    await member.edit(suppress=False)
except CommandInvokeError:
    pass
while True:
    while Vc.is_playing():
        await asyncio.sleep(1)
    else:
        Tune = get_info.write_song()
        Vc.play(discord.FFmpegPCMAudio(f"songs/{Tune}"))
        audiofile = eyed3.load(f"songs/{Tune}")
        title = audiofile.tag.title
        await bot.change_presence(activity=discord.Game(name=f"{title}"))
        Vc.source = discord.PCMVolumeTransformer(Vc.source, volume=config["volume"])
        if "suppress=False" in str(stage.voice_states):
            pass
        else:
            await member.edit(suppress=False)
(suppress=False)

错误:

Member = guild.me(config["bot_id"]) TypeError: 'Member' object is not callable

我对这个错误感到困惑......

【问题讨论】:

  • 您似乎希望guild.me 是可调用函数或可实例化类(这是一个词吗?),但事实并非如此。
  • 什么意思?
  • 您正在尝试调用guild.me(),这意味着您希望它是一个函数或一个类对象。但它不是那些东西,所以你不能那样使用它。一个等效的错误是分配x = 1,然后尝试调用x()。你不能这样做,因为整数对象不能被调用。 Member 对象也不能,错误消息会告诉您。
  • 我不能 100% 确定您要做什么,但看起来您正在尝试获取成员的内容。我说的对吗?
  • guild.me 不是函数。这是机器人的对象

标签: python discord discord.py


【解决方案1】:

您将guild.meguild.get_member() 混淆了。

我会假设您在读入config 的数据库或配置文件中拥有您的机器人 ID(或所有用户)。要检索 Member 对象,您可以像在代码中那样进行操作,传递 ID,但使用 guild.get_member() 函数:

Member = guild.get_member(config["bot_id"])

但是当您要检索的Member 对象来自您自己的机器人时,就像调用guild.me 一样简单,这将为您自己返回一个Member 实例。见下文:

Member = guild.me

文档:

【讨论】:

    猜你喜欢
    • 2022-01-22
    • 2012-08-17
    • 2021-11-11
    • 1970-01-01
    • 2018-12-25
    • 2021-04-15
    • 2011-10-01
    • 2020-11-10
    • 2017-09-09
    相关资源
    最近更新 更多