微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何解决 Telethon UnboundLocalError

如何解决如何解决 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 举报,一经查实,本站将立刻删除。