Руководство Python Function

1- Python Function

Функция (function) - это специальный командный блок, который назван и он помогает программному коду быть более легким для чтения, и он вызывается для использования в разных местах программы. Эта функция является многоразовым (reuseable) командным блоком.

Синтаксис:

** function syntax **
def functionName( parameters ):
   "Short description of the function"
   codes ...
   return [expression]
  • Любая функция (function) начинается с ключевого слова def (аббревиатура define) и сопровождается именем функции.
  • Далее, это список параметров в скобках () и двоеточии (:), функция может включать 0, 1 или много параметров, параметры разделяются запятой.
  • Первая строка тела функции (function body) - это краткое описание функции (необязательно).

Команда возврата (return):

Команда возврата используется чтобы вернуть значение (или выражение), или просто возвращает "ничего". Когда выполняется команла  return (возврат), функция будет завершена. Возврат ( return) - это необязательная команда в теле функции.
Пример Описание
return 3 функция возвращает значение и заканчивается.
return функция ничего не возвращает и заканчивается.

Параметры (parameters):

Функция включает 0, 1 или много параметров, разделённые запятой. Существует четыре вида параметров:
  1. Обьязательный параметр
  2. Параметр по умолчанию (Default parameter)
  3. Параметр переменной длины (Variable-Length Parameter)
  4. Параметр ключевого слова (Keyword Parameter)

2- Пример с Function

Например, функция с параметром и возвращает "ничего".
functionExample1.py
# Определение функции:
def sayHello(name)  :

    # Проверить является ли name пустым (empty) или null.
    if not name   : 
        print( "Hello every body!" )
    
    # Если name не является пустым и не null.    
    else :          
        print( "Hello " + name)

# Вызвать функцию, передать параметр в функцию.
sayHello("")

sayHello("Python"); 

sayHello("Java");
Следующий пример функции с параметром и возвращает значение.
functionExample2.py
# Определение функции:
def getGreeting(name)  :

    # Проверить является ли name пустым (empty) или null (None).
    if not name   :
        # Возвращает значение.
        # И функция закончится здесь.
        return "Hello every body!"
    
    # Если name не является пустым и не null (Не None).
    # код ниже будет выполнен.
    return "Hello " + name

# Вызвать функцию, передать параметр в функцию.
greeting = getGreeting("")

print(greeting)


greeting = getGreeting("Python")

print(greeting)

3- Функция с обязательным параметром

Следующий пример определяет функцию showInfo, имеющую 2 параметра, оба параметра обязательны. Когда вы вызываете эту функцию, вам нужно передать 2 параметра для функции. В противном случае программа выдаст ошибку.
requiredParameterExample.py

def showInfo(name, gender):
   
    print ("Name: ", name);
    print ("Gender: ", gender);
   

# Valid   
showInfo("Tran", "Male")   

# Invalid ==> Error!!
showInfo("Tran")   

4- Функция с параметром по умолчанию

Функция имеет много параметров, включая обьязательные параметры и парамтры со значениями по умолчанию.
Функция showInfo ниже имеет три параметра  (name, gender = "Male", country = "US"):
  1. name является обьязательным параметром.
  2. gender является параметром со значением по умолчанию "Male".
  3. country является параметром со значением по умолчанию "US".
defaultParameterExample.py

def showInfo(name, gender = "Male", country ="US"):
    
    print ("Name: ", name)
    print ("Gender: ", gender)
    print ("Country: ", country)
    

# Valid    
showInfo("Aladdin", "Male", "India")    

print (" ------ ")

# Valid  
showInfo("Tom", "Male")

print (" ------ ")

# Valid  
showInfo("Jerry")

print (" ------ ")

# Valid  
showInfo(name = "Tintin", country ="France")

print (" ------ ")
 

5- Функция с параметром переменной длины

Параметр переменной длины ( Variable-length Parameter) является специальным параметром. При вызове функции вы можете передать 0, 1 или много значений этому параметру.

Примечание: "Variable-length Parameter" всегда должен быть последним параметром функции.

Пример:

Функция  sumValues имеет три параметра:
  • Параметры a, b обьязательны.
  • Параметр *others является "Variable-Length Parameter".
variableLengthParameterExample.py
def sumValues(a, b, *others):
    
    retValue = a + b
    
    # Параметр 'others' похож на массив.
    for other in others :
        retValue = retValue + other
        
    return retValue
Как вызвать функцию:
testVariableLengthParameter.py
from variableLengthParameterExample import sumValues

# Передать: *others = []
a = sumValues(10, 20)

print("sumValues(10, 20) = ", a);

# Передать: *others = [1]
a = sumValues(10, 20, 1);


print("sumValues(10, 20, 1 ) = ", a);

# Передать: *others = [1,2]
a = sumValues(10, 20, 1, 2);


print("sumValues(10, 20, 1 , 2) = ", a);

# Передать: *others = [1,2,3,4,5]
a = sumValues(10, 20, 1, 2,3,4,5);


print("sumValues(10, 20, 1, 2, 3, 4, 5) = ", a);

6- Анонимная функция

Функции являются анонимными (anonymous) если они не определены обычным способом ключевым словом  def, а используя ключевое слово  lambda.
  1. Анонимная функция может иметь 0 или более параметров, но в теле функции есть только одно выражение (expression). Значение выражения является возвращенным значением функции. Но нельзя использовать ключевое слово 'return' сразу перед выражением.
  2. Список параметров разделены запятой, и не должны быть в круглых скобках ( ).
  3. В теле анонимной функции, вы не можете иметь доступ к переменным снаружи, вы можете только иметь досту к е параметрам.
  4. Анонимная функция не может вызвать напрямую функцию print, так как lambda требует выражение.

Синтаксис:

* syntax *

lambda [arg1 [,arg2,.....argn]]  :  expression
пример
lambdaFunctionExample.py
# Объявить переменную: hello = анонимная фукнция и не имеет параметра.
hello = lambda  : "Hello"

# Объявить переменную: mySum = анонимная фукнция с 2-мя параметрами.
mySum = lambda a, b : a + b



a= hello()

print (a)


a = mySum(10, 20)

print (a)