在main()

时间:2018-05-01 13:23:55

标签: python-3.x function variables return main

我正在将旧的关键字扫描程序从Python2重写为Python3,并且在我的最终main()函数中处理多个返回参数时遇到问题。

def scanner_pref():

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

return dork, number

所以,我需要将dork和number返回到下一个函数

def scanner(dork, number):

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

[..]

因此扫描仪可以继续使用给定的有效载荷参数。

但是当我尝试编写main() - 函数时,它无法处理扫描函数,因为它突然需要数字参数。见下文

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 :(得分:0)

scanner(dork, number)有两个参数。

当您致电pref = scanner_pref()时,值dorknumber会作为元组存储在perf中。当您将pref传递给scanner时,您仍然只传递一个参数,一个具有两个值的元组。

你有两个简单的选择

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

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