如何修复“ NameError名称'changePlaying”未定义

时间:2019-01-19 00:00:50

标签: python-3.6 discord.py

我正在使用齿轮来缩短和整理我的不和谐机器人。但是,在尝试“事件”齿轮时,尽管字面上是关于on_ready命令的,但我仍面临未定义changePlaying的NameError

A:我忘了导入discord.ext,因此也导入了它。 B:我尝试过在changePlaying事件中更改可能状态列表的位置

PlayingList = [Maximus.py.","!help"]
async def changePlaying(self):
    while True:
        await self.bot.change_presence(game=Game(name=random.choice(PlayingList)))
        await asyncio.sleep(120)


async def on_ready(self):
    print('Logged in as')
    print(self.bot.user.name)
    print(self.bot.user.id)
    print('-----------------------------------------')
    print('Log in complete')
    for x in range(5):
        print("")
    self.bot.loop.create_task(changePlaying(self))

好吧,我认为很明显可以达到预期的结果,但是要弄清楚该机器人应该启动。它确实在线并且确实听命令,但是状态栏没有改变

1 个答案:

答案 0 :(得分:0)

鉴于方法的self参数,我看到它们在嵌齿轮中。您应该将PlayingList用作嵌齿轮的属性,即在其__init__中添加self.PlayingList = ["Maximus.py.","!help"],然后在方法中通过self.访问它。

所以答案是:您没有正确使用方法。您必须self.changePlaying()而不是changePlaying(self)

顺便说一句,如果您不打算通过执行修改它,请使用元组而不是列表。变量名不应以大写字母开头,因为它通常保留给类。参见PEP 8