Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 属性错误:';成员';对象没有属性';表情符号';_Python_Discord_Discord.py - Fatal编程技术网

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==全局表情符号:
打印('反应成功')

我理解该属性不存在,但我只是因为遵循了教程而感到困惑。我理解该属性不存在,但我只是因为遵循了教程而感到困惑