Latest web development tutorials

funkcja Python

Funkcja to sprawna organizacja, wielokrotnego użytku, stosowane w celu osiągnięcia jeden segment kodu lub związanych funkcji.

Funkcja ta może być stosowana do poprawy modułowości i ponownego wykorzystania kodu. Wiesz już, że Python posiada wiele wbudowanych funkcji, takich jak print (). Ale można też stworzyć własną funkcję, która jest wywoływana funkcja zdefiniowana przez użytkownika.


Definiowanie funkcji

Można zdefiniować funkcję z funkcją chcesz, następujących prostych reguł:

  • Blok funkcyjny def kluczowe na początku, po którym następuje nazwa funkcji i identyfikatorów w nawiasach ().
  • Wszelkie przychodzące parametry i argumenty muszą być umieszczone w nawiasach w środku. może to być wykorzystane do określenia parametrów nawiasach.
  • Pierwsza linia rachunku funkcyjnego można ewentualnie użyć dokumentu String - służą do opisu funkcji.
  • Zawartość funkcji zaczynające się dwukropkiem i wgniecenia.
  • Powrót [wyrażenie] koniec funkcji, ewentualnie zwrócić wartość do rozmówcy. powrót bez ekwiwalentu ekspresji powrót Brak.

gramatyka

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

Domyślnie, nazwa parametru i parametr wartość jest w kolejności określonej w deklaracji funkcji dopasowuje się.

Przykłady

Poniżej znajduje się prosta funkcja Python, przekazując mu ciąg jako parametr, a następnie wydrukować na standardowe urządzenia wyświetlającego.

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

wywołanie funkcji

Zdefiniuj funkcję tylko do nazwy funkcji, należy określić parametry, a struktura blok kodu zawiera funkcję.

Po zakończeniu podstawowej struktury tej funkcji, można wykonać kolejne wywołanie funkcji mają być wykonane bezpośrednio z wiersza Pythona.

Poniższe przykłady są nazywane PrintMe funkcji ():

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

Przykłady wyżej wyjścia:

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

Parametry przekazywane przez parametry wartości i przejść przez odniesienie

Wszystkie parametry (argumenty) w Pythonie są przekazywane przez referencję. Po zmianie parametru w funkcji, to ta funkcja jest wywoływana funkcja, oryginalne parametry zostały zmienione. Na przykład:

#!/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

I przekazywane do funkcji obiektu na koniec dodać nowe treści, używając tego samego odniesienia. Zatem, wyniki wyjściowe są następujące:

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

parametry

Poniżej znajduje się formalny typ parametru mogą być wykorzystane przy wywołaniu funkcji:

  • obowiązkowe parametr
  • argumenty Hasło
  • Parametry domyślne
  • Parametry zmiennej długości

obowiązkowe parametr

Obowiązkowe parametr przekazany do funkcji w odpowiedniej kolejności. Gdy liczba połączeń i musi być taka sama deklaracja.

Zaproszenie PrintMe () funkcji, należy przejść do parametru, lub nastąpi błąd składni:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
#可写函数说明
def printme( str ):
   "打印任何传入的字符串"
   print str;
   return;
 
#调用printme函数
printme();

Przykłady wyżej wyjścia:

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

argumenty Hasło

Złożone argumenty i wywołania funkcji ścisły związek wywołanie funkcji za pomocą argumentów, słów kluczowych, aby określić wartość parametru przyjęta.

Przy użyciu parametru kluczowego umożliwia parametr wywołania funkcji zlecenia jest niezgodna ze stwierdzeniem, ponieważ interpreter Pythona zdolny do dopasowania wartości parametrów przy użyciu nazwy parametru.

W poniższym przykładzie funkcja PrintMe () jest wywoływana z nazwy parametru:

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

Przykłady wyżej wyjścia:

My string

Poniższy przykład można zamówić argumentu słowa kluczowego nie jest ważne pokaż jaśniej:

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

Przykłady wyżej wyjścia:

Name:  miki
Age  50

Parametry domyślne

Gdy funkcja jest wywoływana, wartość domyślna, jeśli parametr nie jest przekazywana, domyślna wartość jest uwzględniana. Domyślnie drukować regularne spotkania z wiekiem, jeśli wiek nie są przekazywane:

#!/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" );

Przykłady wyżej wyjścia:

Name:  miki
Age  50
Name:  miki
Age  35

Parametry zmiennej długości

Może trzeba funkcję, która może obsłużyć więcej niż oryginalnej deklaracji parametrów. Parametry te nazywane są zmienne parametry długości i dwa rodzaje parametrów są różne, nie nazywając oświadczenie. Składnia podstawowa jest następujący:

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

Gwiazdką (*) będą przechowywane w nazwach zmiennych wszystkie nienazwane zmiennych parametrów. Parametry karnet może być mały wybór. Następujące przykłady:

#!/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 );

Przykłady wyżej wyjścia:

输出:
10
输出:
70
60
50

funkcja Anonymous

python przy użyciu lambda do tworzenia anonimowej funkcji.

  • Wystarczy wyrażenie lambda, ciało funkcji jest o wiele prostsze niż def.
  • Ciało jest wyrażenie lambda, niż blok kodu. Możemy zapakować tylko ograniczoną logikę do wyrażenia lambda.
  • Funkcja lambda ma własną przestrzeń nazw, a nie mogą być dostępne poza swoim liście argumentów lub globalnych parametrów nazw.
  • Chociaż funkcja lambda wygląda napisać tylko jeden wiersz, ale nie takie same jak funkcje inline w C lub C ++, ten ostatni cel nie jest przy wywołaniu małą funkcję pamięci stosu w celu zwiększenia efektywności operacyjnej zajęte.

gramatyka

Składnia funkcji lambda zawiera tylko jedną instrukcję, jak następuje:

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

Następujące przykłady:

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

Przykłady wyżej wyjścia:

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

return

Return [wyrażenie], aby wyjść z funkcji selektywnego rozmówca zwraca wyrażenie. return bez parametrów zwróci None. Brak wcześniejsze przykłady pokazują, w jaki sposób zwrócić wartość, w poniższym przykładzie pokażemy, jak to zrobić:

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

Przykłady wyżej wyjścia:

函数内 :  30

zmienna Zakres

Wszystkie zmienne w programie, który nie jest to stanowisko, które mogą być dostępne. Dostępu zależy od której przypisany jest zmienny.

Zakres zmiennej określa, która część programu, w którym można uzyskać dostęp do konkretnej nazwy zmiennej. Dwa Podstawowy zakres zmienny w następujący sposób:

  • Zmienne globalne
  • zmienne lokalne

Zmienne globalne i lokalne

Definicja funkcji zmiennych wewnętrznych posiadać lokalny zakres, określony w funkcji zewnętrznego ma zakresu globalnych.

Zmienne lokalne mogą być zadeklarowane tylko wewnątrz można uzyskać funkcją jego dostęp do zmiennych globalnych w całej procedury. Podczas wywoływania funkcji, wszystkie nazwy zmiennych w deklaracji funkcja zostanie dodana do zakresu. Następujące przykłady:

#!/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 

Przykłady wyżej wyjścia:

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