【问题标题】:problems to handle more than one (return) parameter in main()在 main() 中处理多个(返回)参数的问题
【发布时间】:2018-10-11 12:58:29
【问题描述】:

我正在将一个旧的关键字扫描器从 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() 函数时,它无法处理扫描仪函数,因为它突然需要 numbers 参数。见下文

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

我真的不明白为什么 scan =scanner(pref, ?) 在从上面的scanner(pref) 接收信息时需要数字参数并且并不真正关心dork-parameter。

如果我从scanner_pref() 中删除“数字”,请将其移回scanner(..),它可以正常工作并且不会出现错误或警告消息。

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)

工作正常,没有问题

【问题讨论】:

  • 您可以将 main 函数格式化如下:pref, number = scanner_pref() 然后您可以使用这 2 个变量调用您的扫描仪方法
  • @Jordan 很抱歉回复晚了,但感谢您的帮助,它工作得很好。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2010-12-13
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多