我最近开始学习Python,因为工作机会,所以今天我决定用我所学的知识来做一个练习,我正在用Python为Telegram创建一个机器人,然后我遇到了这种情况:我需要调用将另一个文件中的变量添加到主文件中。为了使代码更清晰,我将代码分成几个文件,一个文件用于调用 api,另一个文件是主文件,另一个文件是机器人命令,为了能够从 api 调用变量,我创建了一个函数,但我不知道是否可以从这个函数中调用变量:
def botApi(SHINEAPI, bot):
SHINEAPI = decrypt_api_key()
bot = telebot.TeleBot(SHINEAPI)
return botApi
我需要为这个装饰器调用 bot 变量:
@bot.message_handler(commands=['start'])
def respostaPadrao(mensagem):
....
有谁知道有什么办法吗?
我已经尝试询问我的技术课程老师,但他仍然没有回答,我尝试过搜索,但我没有找到任何客观回答我的问题的东西......并且我还尝试将其声明为全局变量,但它给出了一个错误。我忘了提及,我也尝试过将其作为返回函数调用,但我无法调用变量,只能调用函数,即使我尝试将变量作为参数传递,它也不起作用...
您应该在不带参数的情况下定义它,并使用
return
在函数外部发送值
def botApi():
SHINEAPI = decrypt_api_key()
bot = telebot.TeleBot(SHINEAPI)
return bot
或更短
def botApi():
return telebot.TeleBot(decrypt_api_key())
然后运行它
bot = botApi()
但是您应该只运行一次,因为如果再次运行它,它可能会执行以下操作之一:
@bot.message_handler
将会丢失@bot.message_handler
一起工作,另一个机器人将与其他 @bot.message_handler
一起工作 - 他们不知道哪一个机器人处理新命令。如果您必须在其他文件中使用它,那么您应该将此文件导入到主代码中,并发送
bot
(您已经拥有)作为参数。