Автор оригинала: Pankaj Kumar.
- Функция – это блок кода с именем.
- Мы можем вызвать функцию по его названию.
- Код внутри функции работает только, когда он вызывается.
- Функция может принимать данные из программы вызывающего абонента, она называется как параметры функции.
- Параметры функции находятся внутри скобок и разделены запятой. Функция может принять любое количество аргументов.
- Функция может вернуть данные в программу вызывающего абонента. В отличие от других популярных языков программирования, определение функций Python не указывает тип возврата.
- Мы не можем использовать Зарезервированные ключевые слова как имя функции. Имя функции должно следовать за Python Identiers Правила определения.
Как определить функцию в Python?
Мы можем определить функцию в Python, используя DEF Ключевое слово Отказ Давайте посмотрим на пару примеры функции в Python.
def hello(): print('Hello World') def add(x, y): print(f'arguments are {x} and {y}') return x + y
На основании приведенных выше примеров мы можем определить структуру функции как это.
def function_name(arguments): # code statements
Как назвать функцию в Python?
Мы можем вызвать функцию по его названию. Если функция принимает параметры, мы должны пропустить их при вызове функции.
hello() sum = add(10, 5) print(f'sum is {sum}')
Мы называем Hello () и добавлять () функции, которые определены нами. Мы также называем функцию Print (), которая является одной из встроенных функций в Python.
Типы функций Python
В Python есть два типа функций.
- Встроенные функции: функции, предоставляемые языком Python, такие как Print (), Len (), STR () и т. Д.
- Пользовательские функции: функции, определенные нами в программе Python.
Может ли функцию иметь значение параметра по умолчанию?
Python Позволяет значения по умолчанию для параметров функций. Если звонящий не передает параметр, то значение по умолчанию используется.
def hello(year=2019): print(f'Hello World {year}') hello(2020) # function parameter is passed hello() # function parameter is not passed, so default value will be used
Выход:
Hello World 2020 Hello World 2019
Можем ли мы иметь несколько операторов возврата внутри функции?
Да, функция может иметь несколько операторов возврата. Однако, когда будет достигнута одно из операторов возврата, выполнение функции завершается и значение возвращается к абонеру.
def odd_even_checker(i): if i % 2 == 0: return 'even' else: return 'odd' print(odd_even_checker(20)) print(odd_even_checker(15))
Может ли функцию Python вернуть несколько значений один за другим?
Функция Python может вернуть несколько значений один за другим. Это реализовано с использованием ключевого слова доходности. Это полезно, когда вы хотите функцию, чтобы вернуть большое количество значений и обработать их. Мы можем разделить возвращенные значения на несколько кусков, используя оператор текучести. Этот тип функции также называется функцией генератора.
def return_odd_ints(i): x = 1 while x <= i: yield x x += 2 output = return_odd_ints(10) for out in output: print(out)
Выход:
1 3 5 7 9
Функция Python Переменные аргументы
Python позволяет три типа параметров в определении функции.
- Формальные аргументы: те, которые мы видели в примерах до сих пор.
- Переменная числа аргументов без ключевых слов: например, Def Добавить (* args)
- Переменная Количество аргументов ключевых слов или названные аргументы: Например, Def Добавить (** kwargs)
Некоторые важные моменты о переменных аргументах в Python являются:
- Заказ аргументов должен быть формальными аргументами, * args, а ** кварги.
- Не обязательно использовать переменные имена параметров в качестве ARGS и KWARGS. Тем не менее, это лучшая практика, чтобы использовать их для лучшей читаемости кода.
- Тип args кортеж. Таким образом, мы можем пройти кортеж, чтобы быть сопоставленным с * args variable.
- Тип кварг – это дикт. Таким образом, мы можем передать словарь, чтобы быть сопоставленным с ** kwargs переменной.
Вот простой пример использования переменных аргументов в функции.
def add(x, y, *args, **kwargs): sum = x + y for a in args: sum += a for k, v in kwargs.items(): sum += v return sum total = add(1, 2, *(3, 4), **{"k1": 5, "k2": 6}) print(total) # 21
Python рекурсивная функция
Когда функция вызывает сама, это называется рекурсивной функцией. Этот сценарий называется рекурсией в программировании.
Вы должны быть очень осторожны при использовании рекурсии, потому что может быть шанс, что функция никогда не заканчивается и переходит в бесконечную петлю. Вот простой пример для печати серии Fibonacci, используя рекурсию.
def fibonacci_numbers_at_index(count): if count <= 1: return count else: return fibonacci_numbers_at_index(count - 1) + fibonacci_numbers_at_index(count - 2) count = 5 i = 1 while i <= count: print(fibonacci_numbers_at_index(i)) i += 1
Приятно знать о рекурсии, но большую часть времени вам не нуждается в программировании. Вы можете выполнить одно и то же, используемое для петли или в то время как.
Тип данных Python Функция
Функции Python – это экземпляры класса «Функция». Мы можем проверить эту функцию с использованием типа ().
def foo(): pass print(type(foo))
Выход : <класс ‘Функция’>
Python Function VS Метод
- Функция Python является частью файла сценариев Python, в котором он определен, тогда как методы определены внутри определения класса.
- Мы можем вызвать функцию напрямую, если она в том же модуле. Если функция определяется в другом модуле, мы можем импортировать модуль, а затем вызовать функцию напрямую. Нам нужен класс или объект класса для вызова методов.
- Функция Python может получить доступ к всем глобальным переменным, тогда как методы класса Python могут получить доступ к глобальным переменным, а также атрибутами класса и функции.
- Тип данных Python Функции – «Функция», тогда как тип данных Python – это метод.
Давайте посмотрим на простой пример функций и методов в Python.
class Data: def foo(self): print('foo method') def foo(): print('foo function') # calling a function foo() # calling a method d = Data() d.foo() # checking data types print(type(foo)) print(type(d.foo))
Выход:
foo function foo method
Преимущества функций Python
- Повторное использование кода, потому что мы можем назвать ту же функцию несколько раз
- Модульный код, поскольку мы можем определить различные функции для разных задач
- Улучшает ремонтопригодность кода
- Абстракция как вызывающий абонент не должен знать реализацию функции
Анонимная функция Python
Не имеется анонимных функций. Мы можем определить анонимную функцию в Python с помощью ключевого слова lambda.
def square(x): return x * x f_square = lambda x: x * x print(square(10)) # 100 print(f_square(10)) # 100
Заключение
Функции являются важной частью языка программирования. Функция Python определяется с использованием ключевого слова def. Мы можем иметь переменное количество аргументов в функции Python. Python также поддерживает анонимную функцию. Они могут вернуть одно значение или дать ряд значений один за другим.