Сложная логика программирования разбита на один или несколько независимых и повторно используемых блоков операторов, называемых функциями. Стандартная библиотека Python содержит большое количество встроенных функций. Можно также определить их собственную функцию, используя ключевое слово def . Пользовательское имя функции сопровождается блоком операторов, который формирует ее тело, которое заканчивается оператором return.
После определения его можно вызывать из любой среды любое количество раз. Давайте рассмотрим следующий код, чтобы прояснить ситуацию.
#definition of function defSayHello(): "optional documentation string" print "Hello World" return #calling the function SayHello()
Функция может быть разработана для получения одного или нескольких параметров / аргументов из вызывающей среды. При вызове такой параметризованной функции необходимо предоставить одинаковое количество параметров с аналогичными типами данных, используемыми в определении функции, в противном случае интерпретатор Jython генерирует исключение TypeError .
пример
#defining function with two arguments def area(l,b): area = l*b print "area = ",area return #calling function length = 10 breadth = 20 #with two arguments. This is OK area(length, breadth) #only one argument provided. This will throw TypeError area(length)
Выход будет следующим:
area = 200 Traceback (most recent call last): File "area.py", line 11, in <module> area(length) TypeError: area() takes exactly 2 arguments (1 given)
После выполнения определенных в нем шагов вызываемая функция возвращается в вызывающую среду. Он может возвращать данные, если перед определением ключевого слова в определении функции указано выражение.
#defining function def area(l,b): area = l*b print "area = ",area return area #calling function length = 10 breadth = 20 #calling function and obtaining its reurned value result = area(length, breadth) print "value returned by function : ", result
Следующий вывод получается, если приведенный выше скрипт выполняется из приглашения Jython.