在查看了这种性质的所有其他问题之后,答案似乎是相同的,编码器没有传递参数,因为它们__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")
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.谢谢!
虽然mu 无法显示正确的方法,但我想在他的代码中强调一些可以修复你的另一个问题.你的代码是:
if __name__ == '__main__':
Login = Login()
Login.__init__(self, "username", "password", "site")
Run Code Online (Sandbox Code Playgroud)
即使你Login()通过运行正确实例化
Login = Login("username", "password", "site")
Run Code Online (Sandbox Code Playgroud)
你将无法Login再次使用你的课程,因为你只是用Login变量覆盖了它.确保您的实例与类名不同,请使用
login = Login("username", "password", "site")
Run Code Online (Sandbox Code Playgroud)
代替.
| 归档时间: |
|
| 查看次数: |
3374 次 |
| 最近记录: |