Что означают квадратные скобки «[]» в документации функций / классов? - PullRequest
23 голосов
/ 12 ноября 2009

У меня проблемы с выяснением аргументов csv.dictreader, и я понял, что понятия не имею, что означают квадратные скобки.

Из документации:

class csv.DictReader(csvfile[, fieldnames=None[, restkey=None[, restval=None[, dialect='excel'[, *args, **kwds]]]]])

Буду признателен за краткое изложение аргументов для создания экземпляра класса.

Спасибо

Ответы [ 4 ]

19 голосов
/ 12 ноября 2009

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

Таким образом, в этом случае от вас требуется , чтобы передать csvfile аргумент csv.DictReader. Если вы передадите второй параметр, он будет интерпретирован как fieldnames аргументы. Третьим будет restkey и т. Д.

Если вы хотите указать, например, cvsfile и dialect, тогда вам придется явно назвать аргумент ключевого слова, например:

csv.DictReader(file('test.csv'), dialect='excel_tab')

Подробнее об аргументах ключевых слов см. раздел 4.7.2 руководства на python.org.

2 голосов
/ 22 января 2010

На самом деле это подмножество широко используемых обозначений для однозначного описания синтаксиса языка, называемого Форма Бэкуса-Наура (подробности см. В статье Википедии).

2 голосов
/ 12 ноября 2009

Обычно в документации API квадратные скобки означают необязательно. Я думаю, они здесь имеют в виду то же самое.

1 голос
/ 12 ноября 2009

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

Если вы опустите дополнительные детали, оставшиеся ключевые слова fieldnames=, restval=, restkey= или dialect= сообщат функции, какие детали отсутствуют.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...