python - 类型错误:check() 缺少 1 个必需的位置参数:'self'
问题描述
我尝试使用 re 编写代码将我的邮件存储在一个文件中,并在启动时检查它是否在该文件中,否则要求我再次输入
我尝试将 self 放在第 28 行的函数名之前(错误)
import re
class login(object):
def check(self):
self.mail = r"([\w\.-]+)@([\w\.-]+)([\w\.-]+)"
with open('login.txt', 'r') as self.myfile:
self.line1 = self.myfile.read().replace('\n', '')
with open('username.txt', 'r') as self.usr:
self.line2 = self.usr.read().replace('\n', '')
if re.findall(self.mail, self.line1):
goon()
else:
log()
self.myfile.close()
def goon(self):
import assistant #another code to exec.
def log(self):
self.file = open("login.txt", "w")
self.file.truncate(0)
self.data = input("Your email: ")
self.file.write(self.data)
self.file.close()
l.goon()
if __name__ == '__main__':
check() #error
log()
goon()
解决方案
你得到这个错误的直接原因是你缩进了你的“主”程序,并使它成为类的方法。
将其拉回左边距。然后,要使用类代码,您必须创建类的实例。这是self
每个方法调用的隐式参数。
if __name__ == '__main__':
obj = login()
obj.check() #error
obj.log()
obj.goon()
推荐阅读
- python - Lambda 函数未在具有“if-else”值的字典中执行
- amazon-web-services - 您可以从 S3 加载标准 zeppelin 解释器设置吗?
- python - win32com的问题
- javascript - 如何在同一个express函数中将项目添加到两个表中(mysql)
- wpf - WPF 自定义用户控件属性绑定始终默认值
- css - 为什么我们不能使用 css 在 bootstrap 4 中更改徽章类的颜色?
- reactjs - 反应 setState 回调不显示当前状态
- spring-boot - 使用 @Autowired 和 @PersistenceContext 注释 EntityManager 有什么区别?应该首选哪一个?
- python - 如何扩大限制以包括 48 小时内的最长工作时间?
- python - 为什么我不能在函数内创建类对象?