如何更改代码以避免 python 中无法访问的错误



写了这个电报机器人。Pycharm 给我错误"最后两行无法访问"。解决方案是什么?没有"虽然真实"的零件代码不起作用

import telebot
import gspread
import datetime
import schedule
import time

bot_token = '____'
googlesheet_id = '___'
bot = telebot.TeleBot(bot_token)
gc = gspread.service_account(filename='.json')
sh = gc.open('___')
wks = sh.worksheet('sheet1')
CHAT_ID = "___"

def check_date():
current_date = datetime.datetime.now()
current_date_string = current_date.strftime('%d.%m.%Y')
sh = gc.open('___')
search_data = wks.find(current_date_string)
list = wks.row_values(search_data.row)
bot.send_message(CHAT_ID, '%s expires today' % (list[0]))
schedule.every().day.at("12:00:00").do(check_date)
while True:
schedule.run_pending()
time.sleep(1)
if __name__ == '__main__':
bot.polling(none_stop=True)

你(大致)写

def check_date():
...
while True:
do_thing_one()
if __name__ == '__main__':
do_thing_two()

最后两行,测试__name__和做第二件事,是没有用的,它们永远不会执行。 为什么无法访问它们? 因为一个while循环的东西, 这永远不会让我们开始尝试第二件事。


请注意,while循环不是check_date函数。 如果要缩进该部分的四个空格, 那么check_date函数将永远不会退出 但我们将能够做第二件事。


似乎不是第二件事,.polling()呼叫与check_date有关。 也许背后有一些看不见的联系 场景。

最新更新