python中的许多不同的参数表示,例如:
urllib2.urlopen(url[, data][, timeout])
urllib2.build_opener([handler, ...])
cookielib.MozillaCookieJar(filename, delayload=None, policy=None)
urllib2.urlopen(url[, data][, timeout])
和
urllib2.urlopen(url,data,timeout)
第一个是否意味着所有url,data和timeout都可以作为列表传递?
答案 0 :(得分:5)
我知道第二种方法中的参数是一个列表
这是不正确的。命令/功能文档中的方括号表示可选参数。请注意,在Python中,参数的顺序很重要,因此您需要使用关键字参数来省略中间的参数。
urllib2.urlopen(someurl, somedata, sometimeout)
urllib2.urlopen(someurl)
urllib2.urlopen(someurl, somedata)
urllib2.urlopen(someurl, timeout=sometimeout)
urllib2.build_opener()
urllib2.build_opener(handler1)
urllib2.build_opener(handler1, handler2)
urllib2.build_opener(handler1, handler2, handler3)
答案 1 :(得分:2)
它是可选参数的标准表示法...即你可以传递数据,可选地后跟超时,或者当你有它的名字时,使用timeout = ...传递超时而没有数据<...