Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Python — Функции

Предыдущая страницаСледующая страница

Функция — это блок организованного повторно используемого кода, который используется для выполнения одного связанного действия. Функции обеспечивают лучшую модульность для вашего приложения и высокую степень повторного использования кода.

Как вы уже знаете, Python предоставляет множество встроенных функций, таких как print() и т. д., но вы также можете создавать свои собственные функции. Эти функции называются пользовательскими функциями.

Определение функции

Вы можете определить функции для обеспечения требуемой функциональности. Вот простые правила для определения функции в Python.

Синтаксис

def functionname( parameters ):
   "function_docstring"
   function_suite
   return [expression]

По умолчанию параметры имеют позиционное поведение, и вам необходимо сообщить их в том же порядке, в котором они были определены.

Пример

Следующая функция принимает строку в качестве входного параметра и выводит ее на стандартный экран.

def printme( str ):
   "This prints a passed string into this function"
   print str
   return

Вызов функции

Определение функции дает ей только имя, указывает параметры, которые должны быть включены в функцию, и структурирует блоки кода.

Как только базовая структура функции завершена, вы можете выполнить ее, вызвав ее из другой функции или непосредственно из командной строки Python. Ниже приведен пример вызова функции printme() —

Живая демонстрация
#!/usr/bin/python

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print str
   return;

# Now you can call printme function
printme("I'm first call to user defined function!")
printme("Again second call to the same function")

Когда приведенный выше код выполняется, он дает следующий результат —

I'm first call to user defined function!
Again second call to the same function

Передача по ссылке и значению

Все параметры (аргументы) в языке Python передаются по ссылке. Это означает, что если вы измените, на что ссылается параметр внутри функции, это изменение также отразится в вызывающей функции. Например —

Живая демонстрация
#!/usr/bin/python

# Function definition is here
def changeme( mylist ):
   "This changes a passed list into this function"
   mylist.append([1,2,3,4]);
   print "Values inside the function: ", mylist
   return

# Now you can call changeme function
mylist = [10,20,30];
changeme( mylist );
print "Values outside the function: ", mylist

Здесь мы сохраняем ссылку на переданный объект и добавляем значения в тот же объект. Итак, это даст следующий результат —

Values inside the function:  [10, 20, 30, [1, 2, 3, 4]]
Values outside the function:  [10, 20, 30, [1, 2, 3, 4]]

Есть еще один пример, когда аргумент передается по ссылке, а ссылка перезаписывается внутри вызываемой функции.

Живая демонстрация
#!/usr/bin/python

# Function definition is here
def changeme( mylist ):
   "This changes a passed list into this function"
   mylist = [1,2,3,4]; # This would assig new reference in mylist
   print "Values inside the function: ", mylist
   return

# Now you can call changeme function
mylist = [10,20,30];
changeme( mylist );
print "Values outside the function: ", mylist

Параметр мой список является локальным для функции changeme. Изменение mylist внутри функции не влияет на mylist . Функция ничего не выполняет, и, наконец, это даст следующий результат —

Values inside the function:  [1, 2, 3, 4]
Values outside the function:  [10, 20, 30]

Аргументы функции

Вы можете вызвать функцию, используя следующие типы формальных аргументов —

Обязательные аргументы

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

Чтобы вызвать функцию printme() , вам обязательно нужно передать один аргумент, иначе выдает синтаксическую ошибку следующим образом —

Живая демонстрация
#!/usr/bin/python

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print str
   return;

# Now you can call printme function
printme()

Когда приведенный выше код выполняется, он дает следующий результат —

Traceback (most recent call last):
   File "test.py", line 11, in <module>
      printme();
TypeError: printme() takes exactly 1 argument (0 given)

Аргументы ключевых слов

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

Это позволяет вам пропускать аргументы или размещать их не по порядку, поскольку интерпретатор Python может использовать предоставленные ключевые слова для сопоставления значений с параметрами. Вы также можете вызывать функцию printme() по ключевым словам. действовать следующим образом —

Живая демонстрация
#!/usr/bin/python

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print str
   return;

# Now you can call printme function
printme( str = "My string")

Когда приведенный выше код выполняется, он дает следующий результат —

My string

Следующий пример дает более ясную картину. Обратите внимание, что порядок параметров не имеет значения.

Живая демонстрация
#!/usr/bin/python

# Function definition is here
def printinfo( name, age ):
   "This prints a passed info into this function"
   print "Name: ", name
   print "Age ", age
   return;

# Now you can call printinfo function
printinfo( age=50, name="miki" )

Когда приведенный выше код выполняется, он дает следующий результат —

Name:  miki
Age  50

Аргументы по умолчанию

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

Живая демонстрация
#!/usr/bin/python

# Function definition is here
def printinfo( name, age = 35 ):
   "This prints a passed info into this function"
   print "Name: ", name
   print "Age ", age
   return;

# Now you can call printinfo function
printinfo( age=50, name="miki" )
printinfo( name="miki" )

Когда приведенный выше код выполняется, он дает следующий результат —

Name:  miki
Age  50
Name:  miki
Age  35

Аргументы переменной длины

Возможно, вам потребуется обработать функцию для большего количества аргументов, чем вы указали при определении функции. Эти аргументы называются переменной длины. аргументы и не называются в определении функции, в отличие от обязательных аргументов и аргументов по умолчанию.

Синтаксис для функции с переменными аргументами, не являющимися ключевыми словами, таков —

def functionname([formal_args,] *var_args_tuple ):
   "function_docstring"
   function_suite
   return [expression]

Звездочка (*) ставится перед именем переменной, которая содержит значения всех аргументов переменных, не являющихся ключевыми словами. Этот кортеж остается пустым, если при вызове функции не указаны дополнительные аргументы. Ниже приведен простой пример —

Живая демонстрация
#!/usr/bin/python

# Function definition is here
def printinfo( arg1, *vartuple ):
   "This prints a variable passed arguments"
   print "Output is: "
   print arg1
   for var in vartuple:
      print var
   return;

# Now you can call printinfo function
printinfo( 10 )
printinfo( 70, 60, 50 )

Когда приведенный выше код выполняется, он дает следующий результат —

Output is:
10
Output is:
70
60
50

Аноним Функции

Эти функции называются анонимными, потому что они не объявляются стандартным образом с помощью тега def. ключевое слово. Вы можете использовать лямбда ключевое слово для создания небольших анонимных функций.

Синтаксис

Синтаксис лямбда functions содержит только один оператор, который выглядит следующим образом —

lambda [arg1 [,arg2,.....argn]]:expression

Ниже приведен пример, показывающий, как лямбда форма работы функции —

Живая демонстрация
#!/usr/bin/python

# Function definition is here
sum = lambda arg1, arg2: arg1 + arg2;

# Now you can call sum as a function
print "Value of total : ", sum( 10, 20 )
print "Value of total : ", sum( 20, 20 )

Когда приведенный выше код выполняется, он дает следующий результат —

Value of total :  30
Value of total :  40

возврат Заявление

Оператор return [выражение] выходит из функции, при необходимости возвращая выражение вызывающей стороне. Оператор return без аргументов аналогичен return None.

Все приведенные выше примеры не возвращают никакого значения. Вы можете вернуть значение из функции следующим образом —

Живая демонстрация
#!/usr/bin/python

# Function definition is here
def sum( arg1, arg2 ):
   # Add both the parameters and return them."
   total = arg1 + arg2
   print "Inside the function : ", total
   return total;

# Now you can call sum function
total = sum( 10, 20 );
print "Outside the function : ", total 

Когда приведенный выше код выполняется, он дает следующий результат —

Inside the function :  30
Outside the function :  30

Область действия переменных

Все переменные в программе могут быть доступны не во всех местах этой программы. Это зависит от того, где вы объявили переменную.

Область действия переменной определяет часть программы, в которой вы можете получить доступ к определенному идентификатору. В Python есть две основные области видимости переменных —

Глобальные и локальные переменные

Переменные, определенные внутри тела функции, имеют локальную область действия, а переменные, определенные снаружи, имеют глобальную область действия.

Это означает, что доступ к локальным переменным можно получить только внутри функции, в которой они объявлены, тогда как к глобальным переменным можно получить доступ по всему телу программы из всех функций. Когда вы вызываете функцию, переменные, объявленные внутри нее, попадают в область видимости. Ниже приведен простой пример —

Живая демонстрация
#!/usr/bin/python

total = 0; # This is global variable.
# Function definition is here
def sum( arg1, arg2 ):
   # Add both the parameters and return them."
   total = arg1 + arg2; # Here total is local variable.
   print "Inside the function local total : ", total
   return total;

# Now you can call sum function
sum( 10, 20 );
print "Outside the function global total : ", total 

Когда приведенный выше код выполняется, он дает следующий результат —

Inside the function local total :  30
Outside the function global total :  0

Python

  1. Анонимная/лямбда-функция Python
  2. Генераторы Python
  3. Замыкания Python
  4. Декораторы Python
  5. 10 популярных функций в Stratasys Insight
  6. Функции C++ с примерами программ
  7. Функция Python String strip() с ПРИМЕРОМ
  8. Лямбда-функции Python с ПРИМЕРАМИ
  9. Функция abs() в Python:примеры абсолютных значений
  10. Функция Python round() с ПРИМЕРАМИ