Рубрики
Без рубрики

Избегайте этих чтений / ошибок, связанных с параметрами и аргументами в Python

Мы обсудим пару ошибок и один GOTCHA, связанные с аргументами и параметрами Python.  … Теги с Python, программированием, CodeNewie, информатики.

Мы обсудим пару ошибок и один GOTCHA, связанные с аргументами и параметрами Python.

Прежде чем двигаться дальше, давайте обсудим несколько терминов. Проверьте фрагмент кода ниже. Это простая функция, которая печатает сумму ее параметров.

  • Параметры – Это имена, перечисленные в определении функции. Например: в приведенном выше фрагменте кода Num1 и num2 являются параметрами
  • Аргументы – Это значения, которые мы проходим при вызове функции. Например: в приведенном выше фрагменте кода в обоих вызовах к функции 10 и 12 аргументы прошли к функции
  • Позиционное аргумент – Когда мы передаем аргументы функции, не явно присваивая их параметрам. Например: в приведенном выше фрагменте кода мы используем позиционные аргументы в первый звонок на функция
  • Ключевое слово аргумент – Когда мы передаем аргументы функции, явно присваивая их параметрам. Например: в приведенном выше фрагменте кода мы используем аргументы ключевых слов во втором вызове функция
  • Значения по умолчанию – значение, назначенное для параметра во время определения функции. Например: в приведенном выше фрагменте кода 20 Это значение по умолчанию, назначенному параметру num2.

Заказ параметров по умолчанию

Правило: Если у вас есть параметр с значением по умолчанию при определении вашей функции, все параметры, следующие за ним, также должны иметь значения по умолчанию

Неверный

В определении выше функции для ФУНК , пару параметров ( num3, num4 ) без значения по умолчанию не следуйте параметру ( num2 ) с значением по умолчанию. Это приводит к синтаксической ошибке.

Верный

Это не приведет к любой ошибке, поскольку мы указали значения по умолчанию для переменных num3. и num4.

Порядок аргумента ключевых слов

Правило: При вызове функции аргумент ключевого слова должен соответствовать аргументу ключевого слова. Следовательно, позиционные аргументы не могут следовать аргументу ключевого слова.

Неверный

12 передается как аргумент ключевых слов. Тем не менее, аргументы после этого ( 20 и 30 ) передаются как позиционные аргументы. Это приводит к синтаксической ошибке.

Верный

На этот раз мы передаем аргументы ( 20 и 30 ) Как аргументы ключевых слов. Следовательно, ошибка не поднимается.

Значение параметров по умолчанию

Неправильное представление: значения по умолчанию присваиваются параметрам во время каждой функции вызов

Правильно: значение по умолчанию назначается только один раз. В будущих функциях вызывает предыдущее значение использовал

Это имеет больше смысла, когда вы следуете примеру ниже

Функция имеет два параметра Num и вырвать . Arr имеет значение по умолчанию пустой список. Функция не делает ничего фантазии. Это просто вставляет параметр Num в массив вырвать а затем печатает массив.

Ожидание

'''
OUTPUT
[10]
[20]
[30]
'''

Так в основном каждый раз, когда мы называем функцию, Arr Установлено на значение по умолчанию пустой список, а Num вводится в него.

Но это не правильный вывод

Действительный

'''
OUTPUT
[10]
[10, 20]
[10, 20, 30]
'''

Да, странно справа? 🤯

По сути, значение по умолчанию установлено во время первого вызова функции. Во время следующих вызовов функций значение по умолчанию не назначается снова. Вместо этого используется предыдущее значение.

Решение

Вместо того, чтобы назначать пустой список в качестве параметра по умолчанию, назначить Нет в качестве значения по умолчанию и назначьте пустой список внутри функции.

Заключение

Я надеюсь, что вы узнали что-то новое сегодня. Параметры и аргументы кажутся легкими концепциями, но на самом деле они немного сложнее, чем вы думаете. Теперь вы знаете ошибки и неправильные представления, чтобы избежать.

Связь со мной на LinkedIn , Твиттер

Оригинал: “https://dev.to/rahulbanerjee99/avoid-these-gotchas-errors-related-to-parameters-and-arguments-in-python-235p”