TypeError:check()缺少1个必需的位置参数:“ self”

时间:2019-01-22 19:41:30

标签: python python-3.x

我尝试使用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()

1 个答案:

答案 0 :(得分:1)

出现直接错误的原因是因为您缩进了“主”程序,并使其成为类的方法。

将其拉回到左边距。然后,要使用类代码,您必须创建该类的实例。这是self,它是每个方法调用的隐式参数。

if __name__ == '__main__':
    obj = login()
    obj.check() #error
    obj.log()
    obj.goon()