не может отправить имя пользователя и пароль в FancyURLopener, если отсутствуют 2 обязательных позиционных аргумента: 'user' и 'passwd' - PullRequest
0 голосов
/ 30 сентября 2019

Я думал, что звоню правильно, но, очевидно, нет. Может кто-нибудь сказать мне, что я делаю не так?

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() )

1 Ответ

2 голосов
/ 30 сентября 2019

Вот проблема:

opener = testURLopener ()

, когда вы устанавливаете условие для инициализации, чтобы получить имя пользователя и пароль. Вы можете изменить аргументы на именованные вместо позиционных и установить значения по умолчанию с помощью следующего кода (вам потребуется правильное пространство имен для FancyURLopener):

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