Python 2.7 类型错误 : __init__() takes exactly 4 arguments (1 given)

标签 python python-2.7

在查看了所有其他此类问题之后,答案似乎是一样的,即编码器没有传递参数,因为它们将 __init__() 留空了。但是,在下面的代码中,我没有将其留空,而是尝试传递最后一行中看到的所有四个参数。

但我仍然收到 TypeError。我不明白为什么我试图传递的论点被忽略了。

class Login:
    def __init__(self, username, password, site):
        self.username = username
        self.password = password
        self.site = "http://" + site + ".wikia.com"
        Login.login(self)

    def login(self):
        self.session = requests.session()
        login_data = {'action': 'login', 'lgname': self.username, 'lgpassword': self.password, 'format':'json'}
        response = self.session.post(self.site + "/api.php",data=login_data)
        content = json.loads(response.content)
        login_data['lgtoken'] = content['login']['token']
        response = self.session.post(self.site + "/api.php",data=login_data)
        content = json.loads(response.content)
        if content['login']['result'] != 'Success':
            raise Exception("Login error: Could not log in via MediaWiki API.")

if __name__ == '__main__':
    Login = Login()
    Login.__init__(self, "username", "password", "site")

感谢任何帮助。谢谢!

最佳答案

虽然亩无shows正确的方法,我想强调他的代码中的某些内容可以解决您的另一个问题。您的代码是:

if __name__ == '__main__':
    Login = Login()
    Login.__init__(self, "username", "password", "site")

即使您通过运行正确地实例化了 Login()

Login = Login("username", "password", "site")

您将无法再次使用您的 Login 类,因为您只是用您的 Login 变量覆盖了它。确保你的实例与类名不一样,使用

login = Login("username", "password", "site")

相反。

关于Python 2.7 类型错误 : __init__() takes exactly 4 arguments (1 given),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29581140/

相关文章:

python - 使用聚合函数过滤输出

python - 有没有一种方法可以在比较图像时在opencv中设置阈值?

python - 如何修复 python 3.7.1 上的导入 TensorFlow 错误?

python - 在python中创建数据库

python - CPython 中的全局解释器锁 (GIL) 是什么?

python - 为什么 Python 显示 'ValueError: could not convert string to float' ?

python - QTableView 中 Drop-Events 的 EventFilter

python - 关于从 SimpleCV 导入 Shell 的 ShimWarning

python - 寻找四边形内最大矩形拟合的简单算法

python - 如何对一列的值求和并将它们按另一列分组