Что означают квадратные скобки, «», в документации по функциям / классу?

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

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

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

Я был бы признателен за резюме аргументов для экземпляра класса.

благодаря

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

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

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

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

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

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

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

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

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

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