Параметр против аргументов ? наконец, что же это такое?

#python #parameters #arguments

#питон #параметры #аргументы

Вопрос:

Я новичок в программировании на Python и недавно я столкнулся с функциями, параметрами, аргументами и…

Я провел много исследований параметров и аргументов (даже проверил ответы на аналогичные прошлые вопросы в StackOverflow), но я не смог получить их значения.

Некоторые говорят, что параметры — это переменные, которые мы передаем функциям, когда мы их определяем, а аргументы — это значения, которые передаются в функции, как только мы передаем их функции для запуска функции.В то время как некоторые другие говорят «нет», это не так.Параметры и аргументы одинаковы и выполняют одну и ту же задачу…

Кто-нибудь может объяснить мне смысловые параметры и аргументы в понятной форме?

Считаются ли параметры и аргументы переменными?

Для каких целей мы их используем?

Пожалуйста, не объясняйте слишком сложно, я новичок.

Большое вам спасибо.

Комментарии:

1. Почти для любого определения вы найдете противоположность, которая настаивает на том, что определение неверно (или должно быть изменено в каком-то очень важном смысле слова » должно «). Не волнуйтесь, найденное вами различие в порядке вещей, хотя оно не повсеместно соблюдается (отчасти потому, что оно редко бывает очень полезным, когда вы понимаете разницу между переменными и значениями).

Ответ №1:

Согласно официальной документации:

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

 def func(foo, bar=None, **kwargs):
    pass
 

foo, bar и kwargs являются параметрами func . Однако при вызове func , например:

 func(42, bar=314, extra=somevar)
 

значения 42 , 314 , и somevar являются аргументами.

Глоссарий определяет их как:

  • Аргумент: значение, передаваемое функции (или методу) при вызове функции.
  • Параметр: именованная сущность в определении функции (или метода), указывающая аргумент (или, в некоторых случаях, аргументы), который может принимать функция.

В Python на самом деле нет «переменных», как в некоторых других языках, — у него есть «имена», ссылающиеся на «объекты». См., например, «Code like a Pythonista» и «Факты и мифы о названиях и значениях Python».

Комментарии:

1. Спасибо, что уделили свое время. Итак, все, что вы говорите: параметр — это то, что нам нужно предоставить функции при ее определении, чтобы построить функцию? И аргумент — это то, что нам нужно поместить в круглые скобки, чтобы запустить функцию?

2. @user3722727 нам не нужно — вы можете определить функцию без параметров. Однако функция, определенная без параметров, не может принимать никаких аргументов. И если функция определяет параметры, аргументы должны быть предоставлены для тех параметров, которые не задают значения по умолчанию.

3. Значения по умолчанию? Что это такое?

4. @user3722727 например bar=314 — если вы не укажете аргумент для этого параметра, он будет принимать значение 314 по умолчанию. Вероятно, вам следует ознакомиться с документацией по определению функций и / или учебным пособием по функциям .

5. Я понял. Спасибо вам за ваши ответы, а также за ваше терпение

Ответ №2:

Воспринимайте это так:

Параметр: параметр представляет собой значение, которое процедура ожидает, что вы передадите при его вызове. Объявление процедуры определяет ее параметры.

Аргумент: аргумент представляет значение, которое вы передаете параметру процедуры при вызове процедуры. Вызывающий код предоставляет аргументы при вызове процедуры.

Пример:

 int add (int value1, int value2)  // Here value1 and value2 are PARAMETERS.
{
return value1 value2;
}
 

Теперь при вызове функции

 answer = add(2,3);  // Here values 2 and 3 are ARGUMENTS. 
 

То же самое относится и к Python, при объявлении они являются параметрами, при вызове они являются аргументами.

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

Комментарии:

1. Пример кода, не относящийся к Python, вероятно, не очень полезен для OP.

2. Если бы он начал с какого-нибудь другого языка, я думаю, он бы задал тот же вопрос. 🙂