Latest web development tutorials

функция Python

Функция является хорошая организация, многоразовые, используется для достижения одного сегмента кода, или связанные с ними функции.

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


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

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

  • Функциональный блок Защиту ключевое слово в начале, за которым следует имя функции и идентификаторов в скобках ().
  • Любые входящие параметры и аргументы должны быть помещены в скобках в середине. Он может быть использован для определения параметров в круглых скобках.
  • В первой строке заявления функции можно дополнительно использовать строку документа - используются для описания функции.
  • Содержание функции, начиная с толстой кишки и отступов.
  • вернуться [выражение] конец функции, необязательно возвращать значение вызывающей. вернуться без выражения эквивалент не возвращать None.

грамматика

def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]

По умолчанию, имя параметра и значение параметра в порядке, определенном в объявлении функции совпадает.

примеров

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

def printme( str ):
   "打印传入的字符串到标准显示设备上"
   print str
   return

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

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

После завершения основной структуры этой функции можно выполнить еще один вызов функции, которая будет выполнена непосредственно из командной строки Python.

Следующие примеры называются функцией PrintMe ():

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 定义函数
def printme( str ):
   "打印任何传入的字符串"
   print str;
   return;
 
# 调用函数
printme("我要调用用户自定义函数!");
printme("再次调用同一函数");

Примеры вышеуказанного вывода:

我要调用用户自定义函数!
再次调用同一函数

Параметры, передаваемые по параметрам стоимости и пройти по ссылке

Все параметры (аргументы) в Python передаются по ссылке. При изменении параметра в функции, то эта функция вызывается функция, исходные параметры также изменились. Например:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 可写函数说明
def changeme( mylist ):
   "修改传入的列表"
   mylist.append([1,2,3,4]);
   print "函数内取值: ", mylist
   return
 
# 调用changeme函数
mylist = [10,20,30];
changeme( mylist );
print "函数外取值: ", mylist

И передается в функцию объекта в конце добавить новое содержание, используя ту же ссылку. Таким образом, выходные результаты являются следующие:

函数内取值:  [10, 20, 30, [1, 2, 3, 4]]
函数外取值:  [10, 20, 30, [1, 2, 3, 4]]

параметры

Ниже приведен формальный тип параметра может использоваться при вызове функции:

  • Обязательный параметр
  • Ключевое слово аргументы
  • Параметры по умолчанию
  • Параметры переменной длины

Обязательный параметр

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

Вызов PrintMe () функция, вы должны передать в качестве параметра, или будет происходить ошибка синтаксиса:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
#可写函数说明
def printme( str ):
   "打印任何传入的字符串"
   print str;
   return;
 
#调用printme函数
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
# -*- coding: UTF-8 -*-
 
#可写函数说明
def printme( str ):
   "打印任何传入的字符串"
   print str;
   return;
 
#调用printme函数
printme( str = "My string");

Примеры вышеуказанного вывода:

My string

Следующий пример может заказать аргумент ключевое слово не важно показать более четко:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
#可写函数说明
def printinfo( name, age ):
   "打印任何传入的字符串"
   print "Name: ", name;
   print "Age ", age;
   return;
 
#调用printinfo函数
printinfo( age=50, name="miki" );

Примеры вышеуказанного вывода:

Name:  miki
Age  50

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

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

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
#可写函数说明
def printinfo( name, age = 35 ):
   "打印任何传入的字符串"
   print "Name: ", name;
   print "Age ", age;
   return;
 
#调用printinfo函数
printinfo( age=50, name="miki" );
printinfo( name="miki" );

Примеры вышеуказанного вывода:

Name:  miki
Age  50
Name:  miki
Age  35

Параметры переменной длины

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

def functionname([formal_args,] *var_args_tuple ):
   "函数_文档字符串"
   function_suite
   return [expression]

Звездочкой (*) будут храниться в именах переменных все неназванные переменными параметрами. Параметры Pass может быть небольшой выбор. Ниже приведены примеры:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 可写函数说明
def printinfo( arg1, *vartuple ):
   "打印任何传入的参数"
   print "输出: "
   print arg1
   for var in vartuple:
      print var
   return;
 
# 调用printinfo 函数
printinfo( 10 );
printinfo( 70, 60, 50 );

Примеры вышеуказанного вывода:

输出:
10
输出:
70
60
50

функция Anonymous

Python с помощью лямбда, чтобы создать анонимную функцию.

  • Просто лямбда-выражение, тело функции гораздо проще, чем опр.
  • Тело лямбда-выражение, а не блок кода. Мы можем только упаковать ограниченную логику в лямбда-выражения.
  • лямбда-функция имеет свое собственное пространство имен, и не могут быть доступны за пределами своего собственного списка аргументов или параметров глобального пространства имен.
  • Хотя лямбда-функция выглядит писать только одну строку, но не такой же, как встроенные функции в C или C ++, последняя цель не занята при вызове функции небольшой стек памяти для увеличения эффективности работы.

грамматика

Синтаксис функции Лямбда содержит только один оператор, следующим образом:

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

Ниже приведены примеры:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 可写函数说明
sum = lambda arg1, arg2: arg1 + arg2;
 
# 调用sum函数
print "相加后的值为 : ", sum( 10, 20 )
print "相加后的值为 : ", sum( 20, 20 )

Примеры вышеуказанного вывода:

相加后的值为 :  30
相加后的值为 :  40

геЬигп

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

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 可写函数说明
def sum( arg1, arg2 ):
   # 返回2个参数的和."
   total = arg1 + arg2
   print "函数内 : ", total
   return total;
 
# 调用sum函数
total = sum( 10, 20 );

Примеры вышеуказанного вывода:

函数内 :  30

Переменная Объем

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

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

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

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

Определение функции внутренних переменных имеют локальную область видимости, как это определено в внешней функции имеет глобальную область.

Локальные переменные могут быть объявлены только внутри функции ее доступа к глобальным переменным можно обращаться в течение процедур. При вызове функции все имена переменных в объявлении функции будут добавлены в область. Ниже приведены примеры:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

total = 0; # 这是一个全局变量
# 可写函数说明
def sum( arg1, arg2 ):
   #返回2个参数的和."
   total = arg1 + arg2; # total在这里是局部变量.
   print "函数内是局部变量 : ", total
   return total;
 
#调用sum函数
sum( 10, 20 );
print "函数外是全局变量 : ", total 

Примеры вышеуказанного вывода:

函数内是局部变量 :  30
函数外是全局变量 :  0