Когда мы вызываем функцию, передача данных всегда неразрывна между основной функцией и вызывающей функцией. При передаче данных — это передача параметров . Целью параметров является передача данных функциям.
Например, мы купили соковыжималку.Когда мы добавим яблоки, выйдет яблочный сок.Когда мы добавим арбуз, выйдет арбузный сок. Параметры передаются в цель через основную функцию. функцию, и вызываемая функция вернет нам результат.
Далее давайте узнаем о передаче параметров.
Чтобы изучить передачу параметров функции, нам сначала нужно понять, что такое формальные параметры и фактические параметры. Давайте продолжим приведенный выше пример. У нас есть контейнер для хранения фруктов в соковыжималке. Мы помещаем фрукты в этот контейнер, и затем соковыжималка начинает работать. Формальные параметры и фактические параметры имеют аналогичную связь.
Формальные параметры — это параметры, определенные в скобках при определении функции. Мы будем использовать этот параметр для написания кода внутри функции, а фактические параметры — это параметры, передаваемые при вызове функции. по этому фактическому параметру вместо формальных параметров.
Посмотрите на следующий пример:
>>>A=30>>>defget_salary(дни):...salary=дни*300...print(зарплата)...>>>get_salary(A)9000
В приведенном выше примере параметр дней, используемый при создании функции, является формальным параметром. Когда мы вызываем функцию, A является фактическим параметром, который на самом деле является параметром, который должен быть добавлен в функцию.
Когда мы создаем функцию, мы можем определить несколько формальных параметров в круглых скобках. Когда мы ее вызываем, количество и положение параметров должны соответствовать созданным.
Что произойдет, если у создаваемой нами функции есть 2 формальных параметра, но при ее вызове мы используем только 1 фактический параметр? См. пример ниже.
>>>defget_message(адрес,номер):...print(адрес,номер)...>>>get_message('Сучжоу')Traceback(mostrecentcalllast):File<stdin>,line1,in<module>TypeError:get_message ()missing1requiredpositionalgument:'number'
Мы можем обнаружить, что когда количество фактических параметров не равно количеству формальных параметров, будет выдано исключение, что, в частности, означает, что необходимый номер параметра позиции отсутствует.
Если позиции параметров несовместимы, возникнут две ошибки. Одна из них — сообщить об ошибке напрямую, поскольку при передаче параметров мы будем определять разные типы в зависимости от характера параметров, поэтому ошибки типов данных будут вызывать исключения.
Другая ошибка заключается в том, что тип данных переданного параметра правильный, но позиция неправильная, что приведет к неправильным результатам вывода.
Чтобы улучшить читабельность программы, при вызове функций также можно использовать аргументы ключевых слов.
Мы узнаем об аргументах ключевых слов, вычисляя объем контейнера.
>>>defvolume(длина,ширина,высота):...volume=длина*ширина*высота...print('Объем: ',объем)... >>>volume(length=20,width= 30, высота=3) объём: 1800
Использование ключевых слов-параметров позволяет сохранить процесс определения переменных, присвоить значения параметрам непосредственно при вызове функции, затем передать их в функцию и, наконец, вернуть результат. В этом методе передачи разница в положении параметра не влияет на выходной результат.
Когда мы определяем функцию, мы можем определить начальное значение для параметров функции, так что, если при вызове функции не указаны фактические параметры, функция будет использовать параметры по умолчанию.
Посмотрите на следующий пример:
>>>defvolume(length=100,width=100,height=10):...volume=length*width*height...print(volume)...>>>>volume()#Не выдает фактические параметры Когда указаны фактические параметры, будут использоваться параметры по умолчанию 100000>>>volume(10,10,10)#. Фактические параметры будут переданы, и выходной результат будет 1000.
В приведенном выше примере, если мы указали значение по умолчанию при создании функции, то параметры по умолчанию будут использоваться автоматически, если мы не укажем фактические параметры при использовании функции.
В Python количество параметров функции может быть изменено, а это означает, что количество параметров может быть неопределенным. Такие параметры называются переменными параметрами. Существует два типа переменных параметров: один – добавление * перед параметрами. Таким образом, переменные параметры передаются в виде кортежей при их передаче. Другой – добавление ** перед параметрами. переменные параметры передаются в виде кортежей. Параметры при их передаче передаются в виде словаря. В основном мы представляем первый метод.
Посмотрите на следующий пример:
>>>defadd_number(*number):...add_num=0...foriinnumber:...add_num+=i...print(add_num)...>>>>add_number(1,2,3,4,5 )15
При использовании переменных параметров эти параметры будут сохранены в кортеже и переданы в функцию, поэтому, когда мы хотим использовать эти параметры, мы можем использовать значения обхода или индекса.
Передача параметров функций примерно такая же. Если вы хотите хорошо изучить функции, вы должны освоить передачу параметров. Правильная передача параметров имеет решающее значение при использовании функций.