python: синтаксис инструкции del [duplicate]

Do:

# apt-get update

И затем:

# apt-get install php5-curl
20
задан Jed Smith 12 November 2009 в 00:59
поделиться

4 ответа

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

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

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

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

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

17
ответ дан Stephan202 27 August 2018 в 07:21
поделиться
  • 1
    Этот ответ правильный. Есть только одна вещь, которую я бы добавил. Хотя cvs.DictReader принимает аргументы ключевого слова, вы также можете иметь аргументы без ключевого слова со значениями по умолчанию. Они, как правило, встроены в функции, написанные на C, как глобальная функция «range ()», или метод split () в строке. Документация для «split» в строке дает свои аргументы следующим образом: S.split ([sep, [, maxsplit]]) - & gt; список строк. Поэтому вы можете подумать, что это сработает: «a b c d e f g» .split (maxsplit = 2), но, к сожалению, это не так. Python выбрасывает & quot; TypeError: split () не принимает аргументы ключевых слов & quot; исключение. Вздох. – Larry Hastings 12 November 2009 в 01:51
  • 2
    Есть ли разница между опциональными и стандартными аргументами? Какая разница между: def exampleFunc1 (arg1, [arg2 = 2], [arg3 = 3]): и def exampleFunc2 (arg1, arg2 = 2, arg3 = 3): Thanks – behindalens 13 November 2009 в 17:43
  • 3
    @behindalens: в обоих случаях arg2 и arg3 могут быть опущены, и в этом случае их значение будет 2 и 3 соответственно. Необязательные аргументы могут иметь значение по умолчанию . – Stephan202 13 November 2009 в 18:32
  • 4
    Есть ли какое-либо значение в том, что квадратные скобки вложены? – behindalens 13 November 2009 в 19:05
  • 5
    @behindalens: он более четко передает, как интерпретируются необязательные аргументы без имени. Я предполагаю, что эта версия не может означать что-то другое, а именно, что эти необязательные аргументы должны быть названы, потому что нет четкого упорядочения (так что вам придется писать, например, arg2=7), но затем вторая запятая должен быть внутри скобок, если вы спросите меня: exampleFunc1(arg1, [arg2 = 2,] [arg3 = 3]). (Но опять же, возможно, это только я.) В общем, мой совет - внимательно прочитать документацию, а когда сомневаешься, просто напишите какой-нибудь тестовый код. Это то, чем я занимаюсь :) – Stephan202 13 November 2009 в 19:15

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

2
ответ дан Bandi-T 27 August 2018 в 07:21
поделиться

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

2
ответ дан Jeremy Wall 27 August 2018 в 07:21
поделиться

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

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

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

1
ответ дан pavium 27 August 2018 в 07:21
поделиться
  • 1
    Действительно, аргументы ключевого слова могут быть указаны в любом порядке. Это (часть) их призыв. Кроме того, функции, которые принимают произвольно много аргументов ключевого слова, делают это с параметром **kwargs, который является dict. Как вы знаете, объекты dict не поддерживают порядок. – Stephan202 12 November 2009 в 01:11
  • 2
    @pavium: Как указано, что последние два аргумента оба указаны или опущены? – behindalens 13 November 2009 в 20:21
  • 3
    Они оба внутри одного набора скобок. – pavium 13 November 2009 в 20:38
  • 4
    Это [, *args, **kwds] – pavium 13 November 2009 в 20:43
Другие вопросы по тегам:

Похожие вопросы: