无法从方法内部调用方法?

时间:2019-07-27 18:26:30

标签: python

我试图实例化一个导入的类,然后从中调用方法。

我有两个类别的搜寻器pythonCrawler.py和pythonEksamen2019。

其中一个方法从内部调用另一个方法,正是这个方法使我出错。

我正在呼叫myCrawler.getLinks()的{​​{1}} -requestHTML()在我实例化的类中。

这是错误:

requestHTML()

该程序在我尝试使其成为类对象之前已经起作用。如果我删除类并直接运行文件,它将执行所需的操作。现在,我只是试图将其分成有趣的类。

我试图在方法中插入Traceback (most recent call last): File "pythonEksamen2019.py", line 10, in <module> main() File "pythonEksamen2019.py", line 6, in main myCrawler.getLinks() File "/Users/phillipeismark/Desktop/Python 4. semester/pythonEksamen2019/pythonCrawler.py", line 34, in getLinks html = requestHTML(page_Name) NameError: name 'requestHTML' is not defined 。 我尝试传递不同的参数并对参数进行硬编码。 我试图将self作为所有方法的第一个参数。

这是我正在调用的方法正在调用的方法。

self.requestHTML(link)

这是我实际调用的方法,page_Name是一个字符串变量,仅是指向站点的链接。

def requestHTML(self, link):
    try:
      res = urlopen(link)
      html = res.read().decode('utf-8')
      html = html.split('\n')
      return html
    except HTTPError as err:
      print(err)
    except Exception as err:
      print(err)

这是我运行的文件,我尝试在其中实例化该对象:

  def getLinks(self):
    html = requestHTML(page_Name)
    with open('linksToScrape.md', 'w') as f:
      for line in html:
        if 'nav-link' in line:
          start = line.find(href) + len(href)
          end = line.find(hrefe)
          link = page_Name + line[start:end]
          f.write(link[:-5] + '\n')

解决方案:我试图调用method requestHTML(),但没有自己。它的前面。因此,它在实例对象之外的其他地方寻找方法,无法找到它。感谢大家的帮助。

0 个答案:

没有答案