【问题标题】:How to fix "NameError: name 'checker_start' is not defined"如何修复“NameError:名称'checker_start'未定义”
【发布时间】:2019-09-07 11:53:31
【问题描述】:

如何修复这些错误代码

Traceback(最近一次调用最后一次):文件 “/Users/erzajullian/PycharmProjects/Checker/topmail.py”,第 9 行,在 类 checker_start(object):文件“/Users/erzajullian/PycharmProjects/Checker/topmail.py”,第 16 行,在 checker_start print(checker_start().get_token()) NameError: name 'checker_start' is not defined

这是代码

import requests
from bs4 import BeautifulSoup


class output(object):
    pass


class checker_start(object):
    def get_token(self):
        data = requests.get("https://mail.topmail.com/preview/mail/")
        soup = BeautifulSoup(data.text, "lxml")
        token_1 = soup.find("input", {"name": "form_token"})["value"]
        return token_1

    print(checker_start().get_token())

我的代码有什么问题?

【问题讨论】:

    标签: python


    【解决方案1】:

    print(checker_start().get_token()) 的行缩进错误。您正在尝试实例化类 checker_start 的对象并在类定义本身的代码块(范围)中调用其方法 get_token。因此你会得到一个NameError。

    Python 中最独特的功能之一是带有缩进的代码块。在 Python 中,缩进代码与风格无关(就像在大多数编程语言中一样),这是一项要求。

    在大多数其他编程语言中,缩进仅用于帮助使代码看起来更漂亮。但是在 Python 中,它是用来指示语句属于哪个代码块的。

    试试:

    import requests
    from bs4 import BeautifulSoup
    
    
    class output(object):
        pass
    
    
    class checker_start(object):
        def get_token(self):
            data = requests.get("https://mail.topmail.com/preview/mail/")
            soup = BeautifulSoup(data.text, "lxml")
            token_1 = soup.find("input", {"name": "form_token"})["value"]
            return token_1
    
    # remove the line-indentation
    print(checker_start().get_token())
    

    【讨论】:

    • 非常感谢!
    • 我是python新手,所以解决方法很简单,我认为是类上的错误代码。但在最后一行,谢谢你,我没想到!
    【解决方案2】:

    您的最后一行 print(checker_start().get_token()) 缩进了一级,可能不应该这样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-13
      • 2017-08-30
      • 2021-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多