如何解决如何解决 Telethon UnboundLocalError
我在代码的最后一行收到此错误。如果有人遇到过同样的问题,我很乐意与我分享如何解决它。 源代码是基于 Telethon 的并且是完整的。执行也成功了,但是当想要响应 userid 时,它给出了 UnboundLocalError。
代码:
@client.on(events.NewMessage(incoming=True,from_users=(723428565,677543378)))
async def _(event):
if event.fwd_from:
return
url = "http://www.google.com"
if event.reply_to_msg_id and "allow" in event.raw_text:
prevIoUs_message = await event.get_reply_message()
prevIoUs_message_text = prevIoUs_message.message
if prevIoUs_message.media:
downloaded_file_name = await client.download_media(
prevIoUs_message,path,)
surl = "{}/searchbyimage/upload".format(url)
multipart = {
"encoded_image": (
downloaded_file_name,open(downloaded_file_name,"rb"),),"image_content": "",}
google_rs_response = requests.post(
surl,files=multipart,allow_redirects=False
)
the_location = google_rs_response.headers.get("Location")
os.remove(downloaded_file_name)
else:
prevIoUs_message_text = prevIoUs_message.message
surl = "{}/searchbyimage?image_url={}"
request_url = surl.format(url,prevIoUs_message_text)
google_rs_response = requests.get(request_url,allow_redirects=False)
the_location = google_rs_response.headers.get("Location")
headers = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0"
}
response = requests.get(the_location,headers=headers)
soup = BeautifulSoup(response.text,"html.parser")
bro = soup.find_all("div",{"class": "r5a77d"})[0]
lol = bro.find("a")
url + lol.get("href")
final = lol.text
await event.edit(
event.chat_id,final.replace("me","")
)
错误:
Line 42: UnboundLocalError: local variable 'final' referenced before assignment
解决方法
您正在 if 块 text = lol.text
中定义变量 if "allow" in event.raw_text:
所以看起来您的条件没有得到满足,并且变量 text
从未定义过。因此,当您尝试访问它时 await event.edit(event.chat_id,text.replace("me",""))
出现错误
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。