проблемы с обработкой более одного (возвращаемого) параметра в main () - PullRequest
0 голосов
/ 01 мая 2018

Я переписываю старый сканер ключевых слов с Python2 на Python3 и у меня возникают проблемы с обработкой более одного возвращаемого параметра в моей последней функции main ().

def scanner_pref():

dork = input('Dork: ')
number = input('Number of sites: ')

return dork, number

Итак, мне нужно вернуть код и номер для следующей функции

def scanner(dork, number):

url = "http://www.google.de/search"
payload = {'q': dork, 'start':'0', 'num': int(number) *10}

[..]

, чтобы сканер мог продолжить работу с заданными параметрами полезной нагрузки.

Но когда я пытаюсь написать функцию main (), она не может обработать функцию сканера, потому что ей неожиданно требуется параметр numbers. см. ниже

def main():
pref = scanner_pref()
scan = scanner(pref) <-- 
parser(h3tag=scan)

Я не совсем понимаю, почему scan = scanner (pref,?) Требует числовой параметр, когда он получает информацию от сканера (pref) выше, и на самом деле не заботится о параметре dork.

Если я уберу «число» из scanner_pref (), переместим его обратно в сканер (..), он будет работать нормально, и не появится сообщение об ошибке или предупреждение.

def scanner_pref():

dork = input('Dork: ')

return dork

#

def scanner(dork, number):
url = "http://www.google.de/search"
number = ("Number of sites: ")
payload = {'q': dork, 'start':'0', 'num': int(number) *10}

#

def main():
pref = scanner_pref()
scan = scanner(pref)
parser(h3tag=scan)

работает нормально и без проблем

1 Ответ

0 голосов
/ 04 мая 2018

scanner(dork, number) принимает два аргумента.

При вызове pref = scanner_pref() значения dork и number сохраняются в perf как кортеж. Когда вы передаете pref в scanner, вы все равно передаете только один аргумент - кортеж с двумя значениями.

у вас есть два простых варианта

pref_dork, pref_number = scanner_pref()
scan = scanner(pref_dork, pref_number)

или

pref = scanner_pref()
scan = scanner(pref[0],perf[1]) 
...