python - 如何修复“NameError:名称'checker_start'未定义”
问题描述
如何修复这些错误代码
回溯(最近一次通话):文件“/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())
我的代码有什么问题?
解决方案
你的行缩进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())
推荐阅读
- google-apps-script - Data Studio 身份验证:checkForValidCreds 和 validateCredentials 之间的区别
- javascript - 我正在使用制表器,什么可能导致数据不出现在列中?
- python - FileNotFoundError:将其推送到heroku后找不到json文件
- oracle - Hyperion Foundation Services 服务器已关闭
- python - Pony ORM如何在多对多关系表中查询
- node.js - 使用 chai 的 MongoDB 测试失败
- python - Django:使用 django-storage 从 S3 创建 zipfile
- unity3d - 我无法在 Unity 项目中发布我的作品
- excel - VBA:使用 For Each 和 With 语句命名多个图表
- python - 将制表符前缀字符串列表转换为字典