Python 属性错误:';成员';对象没有属性';表情符号';
我正在尝试制作一个机器人,当被表情符号反应时,它会做某些事情Python 属性错误:';成员';对象没有属性';表情符号';,python,discord,discord.py,Python,Discord,Discord.py,我正在尝试制作一个机器人,当被表情符号反应时,它会做某些事情 @client.event async def on_reaction_add(ctx, reaction, user: discord.User = message.author): global global_emoji if reaction.emoji == global_emoji: print('Reacted successfully') 但我得到了这个错误 AttributeError
@client.event
async def on_reaction_add(ctx, reaction, user: discord.User = message.author):
global global_emoji
if reaction.emoji == global_emoji:
print('Reacted successfully')
但我得到了这个错误
AttributeError: 'Member' object has no attribute 'emoji'
编辑:我解决了这个问题,只需删除ctx参数您试图获取指定类中不存在的属性。 比如说
class Member(object):
def bla(self):
pass
提到的类有一个名为“bla”的属性,如果您尝试编写Member.bla(),一切都会正常工作。但你要做的是找到“bla2”,它根本不存在。
如果您想知道对象的属性列表,请尝试使用vars(),例如,您试图获取指定类中不存在的属性。
class Member(object):
def bla(self):
pass
比如说
class Member(object):
def bla(self):
pass
提到的类有一个名为“bla”的属性,如果您尝试编写Member.bla(),一切都会正常工作。但你要做的是找到“bla2”,它根本不存在。
如果您想知道某个对象的属性列表,请尝试使用vars(),例如,事件包含两个参数:reaction
和user
class Member(object):
def bla(self):
pass
在您的例子中,您传递的reaction
参数实际上是user
参数,而ctx
参数实际上是reaction
参数
ctx:commands.Context
仅作为第一个参数在命令中传递
@client.event
异步def on_reaction_add(
反应:discord.reaction,用户:Union[discord.Member,discord.user]
):#typehinting不会被discord.py解析,因为它只在命令中解析
如果reaction.emoji==全局表情符号:
打印('反应成功')
事件有两个参数:反应
和用户
在您的例子中,您传递的reaction
参数实际上是user
参数,而ctx
参数实际上是reaction
参数
ctx:commands.Context
仅作为第一个参数在命令中传递
@client.event
异步def on_reaction_add(
反应:discord.reaction,用户:Union[discord.Member,discord.user]
):#typehinting不会被discord.py解析,因为它只在命令中解析
如果reaction.emoji==全局表情符号:
打印('反应成功')
我理解该属性不存在,但我只是因为遵循了教程而感到困惑。我理解该属性不存在,但我只是因为遵循了教程而感到困惑