我在这里犯了这个错误?对我来说,它真的是隐藏的,不明白
我的代码:
import tweepy
import random
import time
from random import shuffle
from pyshorteners.shorteners import Shortener
from bs4 import BeautifulSoup as bs4
import requests
def shortenerUrl(url):
myUrl = url
shortUrlSystem = Shortener('Osdb')
urlReturned = format(shortener.short(myUrl))
return urlReturned
i = random.randint(1, 144)
articleExtractor(i)
for i in listaCompleta:
api.update_status(status=i)
time.sleep(random.randint(247, 383))
我的错误:
Traceback (most recent call last):
File "mTArt.py", line 73, in <module>
articleExtractor(i)
File "mTArt.py", line 67, in articleExtractor
urlCorta = shortenerUrl(job_url)
File "mTArt.py", line 37, in shortenerUrl
urlReturned = format(shortener.short(myUrl))
NameError: name 'shortener' is not defined
那么裁决是什么?
答案 0 :(得分:1)
shortener
未在代码中的任何位置定义。
您可能希望使用shortUrlSystem
定义了错误的行上方的行。
你应该写:
urlReturned = format(shortUrlSystem.short(myUrl))
在您的代码中,您尝试在名为short
的内容上调用方法shortener
:
urlReturned = format(shortUrlSystem.short(myUrl))
现在,python只知道您导入的内容以及定义的内容。
您从模块Shortener
导入 pyshorteners.shorteners
但是python区分大小写,因此shortener
不是Shortener
定义的之一是shortUrlSystem
,因此python知道它并将其定义为Shortener
对象,恰好有short
方法(这意味着你可以在其上调用short
)
现在看一下我看到的文档中的示例
url = 'http://www.google.com'
shortener = Shortener('Osdb')
print "My short url is {}".format(shortener.short(url))
此处作者将 shortener
定义为Shortener
对象,因此命令shortener.short
有效。但是在您的代码中,由于shortener
未定义,shortener.short
无效,您可以从发布的错误中看到:
NameError: name 'shortener' is not defined