Подтвердить что ты не робот

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

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

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

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

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

Спасибо

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

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

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