我在
addon
之外的代码中定义了一个变量 (def()
),以便在代码的其他部分使用它。我需要检查它是True
还是False
,如果那里是True
,请将其更改为False
。但是,if
不起作用,当我将addon
更改为True
时,会出现错误:addon
与addon
之外的另一个def()
相呼应,而addon
中的if
则不工作被定义。
代码本身:
import telebot
from telebot import types
addon = False
@bot.message_handler(commands=['function'])
def func1(message):
if addon is False:
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
button1 = types.InlineKeyboardButton('Button1', callback_data='Button1')
markup.add(button1)
button2 = types.InlineKeyboardButton('Button2', callback_data='Button2')
markup.add(button2)
bot.send_message(message.chat.id, 'Message text', reply_markup=markup)
addon = True
我尝试过:
global
,但它改变了所有用户的变量,这不好。addon
放在def
之后message
,也不起作用+=
和-=
)代替True
和False
,错误并没有消失通常我会向函数添加另一个参数,然后在函数执行时传递它的值,如下所示:
addon = False
def func1(message, addon):
...
func1(message="hello world", addon=addon)
但是如果这是不可能的,那么您可以使用
globals()
函数,它返回全局范围内定义的所有对象的字典。然后您可以执行以下操作:
addon=False
def func1(message):
addon = globals()['addon']
...