funzione Python
Funzione è una buona organizzazione, riutilizzabile, utilizzato per realizzare un unico segmento di codice, o funzioni associate.
La funzione può essere applicato per migliorare la modularità e riutilizzare il codice. Sapete già che Python fornisce molte funzioni incorporate, come la stampa (). Ma si può anche creare la propria funzione, che si chiama una funzione definita dall'utente.
Definire una funzione
È possibile definire una funzione dalla funzione che si desidera, le seguenti semplici regole:
- Blocco funzionale def parola chiave in principio, seguito dal nome della funzione e identificatori fra parentesi ().
- I parametri in entrata e gli argomenti devono essere poste tra parentesi nel mezzo. Può essere usato per definire i parametri tra parentesi.
- La prima riga della dichiarazione funzione può opzionalmente utilizzare un documento stringa - sono utilizzati per la descrizione della funzione.
- contenuti Funzione iniziare con i due punti e l'indentazione.
- ritornare [espressione] fine della funzione, opzionalmente restituire un valore al chiamante. ritornare senza un'espressione equivalente a restituire None.
grammatica
def functionname( parameters ): "函数_文档字符串" function_suite return [expression]
Per impostazione predefinita, il nome del parametro e il parametro valore è nell'ordine definito nella dichiarazione di funzione corrisponda.
Esempi
Quanto segue è una funzione Python semplice, passando una stringa come parametro, quindi stampare al dispositivo di visualizzazione standard.
def printme( str ): "打印传入的字符串到标准显示设备上" print str return
richiamo della funzione
Definire una funzione solo di un nome di funzione, specificare i parametri, e la struttura blocco di codice contiene la funzione.
Dopo il completamento della struttura di base di questa funzione, è possibile eseguire un'altra chiamata di funzione da eseguire direttamente dal prompt di Python.
I seguenti esempi sono chiamati funzione PrintMe ():
#!/usr/bin/python # -*- coding: UTF-8 -*- # 定义函数 def printme( str ): "打印任何传入的字符串" print str; return; # 调用函数 printme("我要调用用户自定义函数!"); printme("再次调用同一函数");
Esempi di uscita sopra:
我要调用用户自定义函数! 再次调用同一函数
Parametri passati da parametri di valore e passa per riferimento
Tutti i parametri (argomenti) in Python sono passati per riferimento. Se si modifica un parametro in una funzione, allora questa funzione viene chiamata la funzione, i parametri originali sono anche cambiato. Ad esempio:
#!/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
E passata nella funzione dell'oggetto alla fine per aggiungere nuovi contenuti utilizzando lo stesso riferimento. Così i risultati di output sono i seguenti:
函数内取值: [10, 20, 30, [1, 2, 3, 4]] 函数外取值: [10, 20, 30, [1, 2, 3, 4]]
parametri
Quanto segue è il tipo di parametro formale può essere utilizzato quando si chiama la funzione:
- parametro obbligatorio
- argomenti chiave
- I parametri di default
- parametri di lunghezza variabile
parametro obbligatorio
parametro obbligatorio da passare alla funzione nell'ordine corretto. Quando il numero di chiamate e deve essere la stessa dichiarazione.
PrintMe funzione call (), si deve passare in un parametro, o si verificherà errore di sintassi:
#!/usr/bin/python # -*- coding: UTF-8 -*- #可写函数说明 def printme( str ): "打印任何传入的字符串" print str; return; #调用printme函数 printme();
Esempi di uscita sopra:
Traceback (most recent call last): File "test.py", line 11, in <module> printme(); TypeError: printme() takes exactly 1 argument (0 given)
argomenti chiave
argomenti e la funzione chiave chiamate uno stretto rapporto chiamata di funzione con argomenti a parola chiave per determinare il valore del parametro passato.
Quando si utilizza il parametro parola chiave permette il parametro d'ordine chiamata di funzione è incompatibile con l'affermazione, perché Python interprete capace di abbinare i valori dei parametri utilizzando il nome del parametro.
La funzione PrintMe seguente esempio () viene chiamato con il nome del parametro:
#!/usr/bin/python # -*- coding: UTF-8 -*- #可写函数说明 def printme( str ): "打印任何传入的字符串" print str; return; #调用printme函数 printme( str = "My string");
Esempi di uscita sopra:
My string
Il seguente esempio può ordinare argomento chiave non è importante mostrare più chiaramente:
#!/usr/bin/python # -*- coding: UTF-8 -*- #可写函数说明 def printinfo( name, age ): "打印任何传入的字符串" print "Name: ", name; print "Age ", age; return; #调用printinfo函数 printinfo( age=50, name="miki" );
Esempi di uscita sopra:
Name: miki Age 50
I parametri di default
Quando la funzione viene chiamata, il valore di default se il parametro non viene passato, il valore di default è considerato. Per impostazione predefinita stampare riunione ordinaria di età, se l'età non è passato:
#!/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" );
Esempi di uscita sopra:
Name: miki Age 50 Name: miki Age 35
parametri di lunghezza variabile
Potrebbe essere necessario una funzione in grado di gestire più di dichiarazione originale di parametri. Questi parametri sono detti parametri di lunghezza variabile, ed i due tipi di parametri sono differenti, non denominazione dichiarazione. La sintassi di base è la seguente:
def functionname([formal_args,] *var_args_tuple ): "函数_文档字符串" function_suite return [expression]
Con un asterisco (*) verranno memorizzati nei nomi delle variabili tutti i parametri variabili senza nome. parametri pass può essere poca scelta. I seguenti esempi:
#!/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 );
Esempi di uscita sopra:
输出: 10 输出: 70 60 50
funzione anonima
python utilizzando lambda per creare una funzione anonima.
- Basta un'espressione lambda, il corpo della funzione è molto più semplice def.
- Il corpo è un'espressione lambda, piuttosto che un blocco di codice. Siamo in grado di confezionare solo una logica limitata nell'espressione lambda.
- funzione lambda ha un proprio spazio dei nomi, e non è possibile accedere al di fuori della propria lista degli argomenti oi parametri namespace globale.
- Anche se la funzione lambda sembra solo scrivere una sola riga, ma non lo stesso di funzioni inline in C o C ++, quest'ultimo obiettivo non è occupato quando si chiama la piccola funzione di memoria di stack per aumentare l'efficienza operativa.
grammatica
sintassi funzione Lambda contiene una sola istruzione, come segue:
lambda [arg1 [,arg2,.....argn]]:expression
I seguenti esempi:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 可写函数说明 sum = lambda arg1, arg2: arg1 + arg2; # 调用sum函数 print "相加后的值为 : ", sum( 10, 20 ) print "相加后的值为 : ", sum( 20, 20 )
Esempi di uscita sopra:
相加后的值为 : 30 相加后的值为 : 40
istruzione return
Istruzione return [espressione] per uscire dalla funzione selettiva al chiamante restituisce un espressione. istruzione return senza parametri restituisce None. Non ci sono esempi precedenti dimostrano come restituire un valore, il seguente esempio mostra come fare:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 可写函数说明 def sum( arg1, arg2 ): # 返回2个参数的和." total = arg1 + arg2 print "函数内 : ", total return total; # 调用sum函数 total = sum( 10, 20 );
Esempi di uscita sopra:
函数内 : 30
Mirino variabile
Tutte le variabili in un programma che non è una posizione che può essere letta. Accesso dipende da dove viene assegnato alla variabile.
- Variabili globali
- Le variabili locali
variabili globali e locali
La definizione della funzione di variabili interne hanno un ambito locale, come definito nella funzione esterna ha ambito globale.
Le variabili locali possono essere dichiarate solo all'interno di una funzione del suo accesso alle variabili globali può essere letta in tutte le procedure. Quando si chiama una funzione, tutti i nomi delle variabili di dichiarazioni di funzioni saranno aggiunte al campo di applicazione. I seguenti esempi:
#!/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
Esempi di uscita sopra:
函数内是局部变量 : 30 函数外是全局变量 : 0