Python-Funktion
Die Funktion ist eine gute Organisation, wiederverwendbar, verwendet einen einzigen Code-Segment, oder damit verbundenen Funktionen zu erreichen.
Die Funktion kann angewendet werden, um die Modularität zu verbessern und Wiederverwendung von Code. Sie wissen bereits, dass Python viele integrierte Funktionen, wie zum Beispiel print () zur Verfügung stellt. Sie können aber auch Ihre eigene Funktion erstellen, die eine benutzerdefinierte Funktion aufgerufen wird.
Definieren Sie eine Funktion
Sie können eine Funktion aus der Funktion, die Sie möchten, die folgenden einfachen Regeln zu definieren:
- Funktionsblock def Schlüsselwort am Anfang, gefolgt von dem Funktionsnamen und Kennungen in Klammern ().
- Alle eingehenden Parameter und Argumente müssen in Klammern in der Mitte platziert werden. Es kann verwendet werden, um die Parameter, die in Klammern zu definieren.
- Die erste Zeile der Funktion Anweisung kann optional ein String-Dokument zu verwenden - für Funktionsbeschreibung verwendet.
- Funktion Inhalt mit einem Doppelpunkt und Vertiefung beginnen.
- return [Ausdruck] Ende der Funktion, optional einen Wert für den Anrufer zurück. Rückkehr ohne eine entsprechende Angabe Keine zurückzukehren.
Grammatik
def functionname( parameters ): "函数_文档字符串" function_suite return [expression]
Standardmäßig ist der Parametername und Parameterwert in der Reihenfolge, in der Funktionsdeklaration definiert einstimmt.
Beispiele
Im Folgenden ist eine einfache Python-Funktion, eine Zeichenfolge als Parameter übergeben, dann auf die Standard-Anzeigegerät drucken.
def printme( str ): "打印传入的字符串到标准显示设备上" print str return
Funktionsaufruf
Definieren Sie eine Funktion nur in einem Funktionsnamen, geben Sie die Parameter und Codeblockstruktur enthält die Funktion.
Nach Abschluss der Grundstruktur dieser Funktion können Sie eine weitere Funktionsaufruf durchführen direkt von der Python-Prompt ausgeführt werden.
Die folgenden Beispiele werden printme () Funktion aufgerufen:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 定义函数 def printme( str ): "打印任何传入的字符串" print str; return; # 调用函数 printme("我要调用用户自定义函数!"); printme("再次调用同一函数");
Beispiele für die obigen Ausgangs:
我要调用用户自定义函数! 再次调用同一函数
Parameter, die von Wert und Passparameter als Referenz
Alle Parameter (Argumente) in Python als Referenz übergeben. Wenn Sie einen Parameter in einer Funktion zu ändern, dann wird diese Funktion aufgerufen Funktion werden die ursprünglichen Parameter ebenfalls geändert. Zum Beispiel:
#!/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
Und am Ende in die Funktion des Objekts übergeben neue Inhalte hinzufügen, um die gleiche Referenz. So sind die Ausgabeergebnisse wie folgt:
函数内取值: [10, 20, 30, [1, 2, 3, 4]] 函数外取值: [10, 20, 30, [1, 2, 3, 4]]
Parameter
Im Folgenden ist der formale Parameter-Typ verwendet werden kann, wenn die Funktion aufrufen:
- Pflichtparameter
- Stichwort Argumente
- Die Standardparameter
- Variabler Länge Parameter
Pflichtparameter
Obligatorischer Parameter an die Funktion in der richtigen Reihenfolge übergeben werden. Wenn die Anzahl der Anrufe und muss die gleiche Erklärung sein.
Rufen Sie printme () Funktion, müssen Sie in einem Parameter übergeben, oder Syntaxfehler auftreten:
#!/usr/bin/python # -*- coding: UTF-8 -*- #可写函数说明 def printme( str ): "打印任何传入的字符串" print str; return; #调用printme函数 printme();
Beispiele für die obigen Ausgangs:
Traceback (most recent call last): File "test.py", line 11, in <module> printme(); TypeError: printme() takes exactly 1 argument (0 given)
Stichwort Argumente
Stichwort Argumente und Funktion ruft eine enge Beziehung Funktionsaufruf mit Keyword-Argumente den Wert des Parameters übergeben, um zu bestimmen.
Wenn das Schlüsselwort-Parameter verwenden, können ist der Funktionsaufruf, um Parameter mit der Aussage widersprüchlich, weil Python-Interpreter der Lage, die Parameterwerte entsprechend dem eingestellten Namen.
Das folgende Beispiel Funktion printme () wird mit dem Parameternamen genannt:
#!/usr/bin/python # -*- coding: UTF-8 -*- #可写函数说明 def printme( str ): "打印任何传入的字符串" print str; return; #调用printme函数 printme( str = "My string");
Beispiele für die obigen Ausgangs:
My string
Das folgende Beispiel kann Schlüsselwort-Argument bestellen ist nicht wichtig, zeigen deutlicher:
#!/usr/bin/python # -*- coding: UTF-8 -*- #可写函数说明 def printinfo( name, age ): "打印任何传入的字符串" print "Name: ", name; print "Age ", age; return; #调用printinfo函数 printinfo( age=50, name="miki" );
Beispiele für die obigen Ausgangs:
Name: miki Age 50
Die Standardparameter
Wenn die Funktion aufgerufen wird, wird der Standardwert, wenn der Parameter nicht übergeben, wird der Standardwert berücksichtigt. Standardmäßig drucken regelmäßige Treffen von Alter, wenn das Alter nicht übergeben wird:
#!/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" );
Beispiele für die obigen Ausgangs:
Name: miki Age 50 Name: miki Age 35
Variabler Länge Parameter
Sie können eine Funktion benötigen, die mehr als die ursprüngliche Deklaration von Parametern umgehen kann. Diese Parameter sind die variable Längenparameter genannt, und die zwei Typen von Parametern verschieden sind, keine Erklärung zu nennen. Die grundlegende Syntax lautet wie folgt:
def functionname([formal_args,] *var_args_tuple ): "函数_文档字符串" function_suite return [expression]
Mit einem Stern (*) wird in Variablennamen alle ungenannten variablen Parameter gespeichert werden. Pass-Parameter können kaum eine andere Wahl sein. Die folgenden Beispiele:
#!/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 );
Beispiele für die obigen Ausgangs:
输出: 10 输出: 70 60 50
anonyme Funktion
Python Lambda mit Hilfe eines anonymen Funktion zu erstellen.
- Nur ein Lambda-Ausdruck ist die Funktion Körper viel einfacher als def.
- Der Körper ist ein Lambda-Ausdruck, eher als ein Block von Code. Wir können nur eine begrenzte Logik in den Lambda-Ausdruck verpacken.
- Lambda-Funktion verfügt über einen eigenen Namensraum, und kann nicht außerhalb des eigenen Argumentliste oder den globalen Namespace-Parameter zugegriffen werden.
- Obwohl sieht Lambda-Funktion nur eine einzige Zeile zu schreiben, aber nicht das gleiche wie Inline-Funktionen in C oder C ++ wird dieser Zweck nicht besetzt, wenn der kleine Stapelspeicher-Funktion aufrufen Betriebseffizienz zu erhöhen.
Grammatik
Lambda-Funktion Syntax enthält nur eine Anweisung, wie folgt:
lambda [arg1 [,arg2,.....argn]]:expression
Die folgenden Beispiele:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 可写函数说明 sum = lambda arg1, arg2: arg1 + arg2; # 调用sum函数 print "相加后的值为 : ", sum( 10, 20 ) print "相加后的值为 : ", sum( 20, 20 )
Beispiele für die obigen Ausgangs:
相加后的值为 : 30 相加后的值为 : 40
return-Anweisung
Statement return [Ausdruck] zu beenden Funktion selektiv zu der Anrufer einen Ausdruck zurückgibt. return-Anweisung ohne Parameter liefert Keine. Keine vorherigen Beispiele zeigen, wie ein Wert zurückgegeben, das folgende Beispiel zeigt Ihnen, wie es geht:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 可写函数说明 def sum( arg1, arg2 ): # 返回2个参数的和." total = arg1 + arg2 print "函数内 : ", total return total; # 调用sum函数 total = sum( 10, 20 );
Beispiele für die obigen Ausgangs:
函数内 : 30
Variable Scope
Alle Variablen in einem Programm, die nicht eine Position ist, auf die zugegriffen werden kann. Zugriff hängt von dem die Variable zugeordnet ist.
- globale Variablen
- Lokale Variablen
Globale und lokale Variablen
Die Definition der Funktion der internen Variablen haben einen lokalen Bereich, wie es in der äußeren Funktion definiert globale Reichweite hat.
Lokale Variablen können nur auf globale Variablen in einer Funktion der Zugang erklärt werden kann in den Verfahren zugegriffen werden. Wenn Sie eine Funktion aufrufen, werden alle Variablennamen in Funktionsdeklarationen werden dem Umfang hinzugefügt werden. Die folgenden Beispiele:
#!/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
Beispiele für die obigen Ausgangs:
函数内是局部变量 : 30 函数外是全局变量 : 0