嵌套函数返回值调用报错:‘private_key未定义’问题咨询
问题原因与解决方案
你报错的核心原因是没有接收异步函数返回的结果。被@sync_to_async装饰的get_user_wallet虽然返回了wallet和private_key,但你调用await get_user_wallet()时,没有把这两个返回值赋值给外部作用域的变量。嵌套函数内部定义的private_key仅在函数内部有效,外部无法直接访问。
修改后的代码如下:
async def wallet(self, interaction:discord.Interaction, button:discord.ui.Button): ### Blah blah blah ### @sync_to_async def get_user_wallet(): private_key = abc wallet = xyz return wallet, private_key # 接收返回的两个值,赋值给外部作用域的变量 wallet, private_key = await get_user_wallet() view = secretKeyView(private_key) await interaction.response.send_message()
通过将异步调用的返回值解构赋值给外部变量,private_key就能在后续代码中正常使用了。
内容的提问来源于stack exchange,提问作者Ryan Thomas
相关产品推荐
相关产品推荐

