Аргумент функции Python предиката типа a = b - PullRequest
3 голосов
/ 08 августа 2011

Прошу прощения за мой навык Python или его отсутствие.Я видел некоторые вызовы методов вида

auth_req = urllib2.Request(auth_uri, data=authreq_data)

Если я введу только authreq_data, я получу ошибку.Какое правильное техническое определение для этого типа аргумента метода?Это логический тип / предикат?

Ответы [ 2 ]

7 голосов
/ 08 августа 2011

Они называются аргументы ключевых слов .

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

подпись urrlib2.Request равна

urllib2.Request(url[, data][, headers][, origin_req_host][, unverifiable])

Так что, пока вы указываете URL, auth_uri в этом случае вы сможете передавать authreq_data, не указывая, что оноявляется аргументом data.

auth_req = urllib2.Request(auth_uri, authreq_data)

В Python 3 также добавлен синтаксис для указания аргументов только для ключевых слов .

0 голосов
/ 08 августа 2011
...