无法将用户和密码发送到 FancyURLopener 缺少 2 个必需的位置参数:'user' 和 'passwd'

can't send user and password to FancyURLopener getting missing 2 required positional arguments: 'user' and 'passwd'

我以为我的调用是正确的,但显然不是。有人可以告诉我我做错了什么吗?

import urllib.request

class testURLopener(urllib.request.FancyURLopener):

    def __init__(self, user, passwd):
                self.__user = user
                self.__passwd = passwd
                urllib.FancyURLopener.__init__(self)


if __name__ == '__main__' :                

   opener = testURLopener()

   opener.setpasswd("user", "password")

   web_byte = opener.open('https://www.test.com')

   print(web_byte.getcode() )

问题是:

opener = testURLopener()

当您设置条件时,您的 init 会获取用户名和密码。您可以将参数更改为命名而不是位置,并使用以下代码设置默认值(您需要 FancyURLopener 的正确命名空间):

def __init__(self, user="", passwd=""):
    self.__user = user
    self.__passwd = passwd
    urllib.request.FancyURLopener.__init__(self)