Funktion (Funktionen) bezieht sich auf das Programmfragment wiederverwendbar. Sie ermöglichen es , den Namen für einen Block von Code, die Sie einen Code - Block überall in Ihrer Anwendung durch diesen besonderen Namen laufen zu lassen, und können beliebig oft wiederholt werden. Dies wird * Call (Aufruf) * Funktion aufgerufen. Wir haben bereits viele integrierte Funktionen verwendet werden, wie len
und range
.
Das Konzept kann in jedem komplexen Software-Funktion (unabhängig davon, was Programmiersprache) ist die wichtigsten Bausteine, so dass beim nächsten wir verschiedenen Aspekten im Zusammenhang Funktionen in diesem Kapitel erkunden.
Nach Stichwort Funktionen können def
definiert werden. Dieses Schlüsselwort wird durch eine Kennung Namen einer Funktion gefolgt, und im Gespräch mit einem Paar von Klammern, die den Namen einiger Variablen beinhalten können, und dann mit einem Doppelpunkt, das Ende der Leitung beenden. Dann kam der Satzteil des Funktionsbausteins ist. Der folgende Fall wird dies demonstrieren ist eigentlich ganz einfach:
Fall (Speichern unter function1.py
):
def say_hello():
# 该块属于这一函数
print('hello world')
# 函数结束
say_hello() # 调用函数
say_hello() # 再次调用函数
Ausgang:
hello world
hello world
Wir haben oben definieren den Namen erklärt say_hello
der Funktion. Diese Funktion verwendet keine Parameter, so gibt es keine Deklaration von Variablen in Klammern. Funktionsparameter ist , in Funktion ein, so dass ich es auf einen anderen Wert übergeben kann, und die entsprechenden Ergebnisse erhalten.
Zu beachten, dass wir zwei Anrufe auf die gleiche Funktion, was bedeutet, dass müssen wir einmal den Code nicht neu zu schreiben.
1. Funktionsparameter
Funktion, die Argumente nehmen kann, wird der Wert des Parameters von Ihnen zur Verfügung gestellten, wobei Funktionen diese Werte etwas zu tun, verwenden können. Diese Parameter sind ähnlich den Variablen, die Werte dieser Variablen definiert wurden, wenn wir die Funktion aufrufen, und haben die Zuordnung zur Laufzeitfunktion abgeschlossen.
Funktionsparameter durch ein Paar von Klammern Platzieren die Funktion angegeben in, zu definieren , und durch ein Komma getrennt werden. Wenn wir die Funktion aufrufen, müssen wir Wert in der gleichen Form zur Verfügung zu stellen. Die hier verwendete Terminologie zu beachten ist - der angegebene Name der Definition der Funktion bezeichnet * „Parameter“ (die Parameter) , beim Aufruf der Funktion Du auf den Wert für die Funktion des bereitgestellten genannten „Arguments“ (Argumente) *.
Fall (Speichern unter function_param.py
):
def print_max(a, b):
if a > b:
print(a, 'is maximum')
elif a == b:
print(a, 'is equal to', b)
else:
print(b, 'is maximum')
# 直接传递字面值
print_max(3, 4)
x = 5
y = 7
# 以参数的形式传递变量
print_max(x, y)
Ausgang:
4 is maximum
7 is maximum
Hier werden wir den Namen der Funktion print_max
und Verwendung von zwei Parametern aufgerufen a
und b
. Wir verwenden eine einfache if...else
Anweisung , um die größere Anzahl zu finden, und drucken Sie es aus.
Erster Aufruf print_max
wir diese Nummer Funktion in einer direkten Form Argument liefern. Im zweiten Aufruf werden wir Variable als Argument sein , um die Funktion aufzurufen. print_max(x, y)
Das Argument , dass der x
Wert wird den Parameter zugeordnet wird a
, und die tatsächlichen y
Parameterwerte werden zu einem Parameter zugeordnet werden b
. In beiden Anrufen, die print_max
Arbeit in der gleichen Art und Weise.
2. Lokale Variablen
Wenn Sie eine Variable in einer Funktionsdefinition deklarieren, sie nicht in irgendeine Weise anders als zu leben mit der gleichen Funktion aber mit einer Variablennamen Generation Beziehungen, das heißt, es gibt sie nur in den Variablennamen der Funktion der lokalen (Lokal) . Dies wird Variable namens Umfang (Scope) . Scope alle Variablen blockieren sie definiert sind, ausgehend von der Definition ihrer Namen Punkte definiert.
Fall (Speichern unter function_local.py
):
x = 50
def func(x):
print('x is', x)
x = 2
print('Changed local x to', x)
func(x)
print('x is still', x)
Ausgang:
x is 50
Changed local x to 2
x is still 50
Wenn wir den Namen der ersten Reihe , die in dem Funktionsblock zum ersten Ausdruck , x
wenn der Wert, Python , den Wert dieses Parameters auf dem Hauptblock der Anweisung Funktionsdeklaration verwendet.
Dann werden wir Wert 2
zugewiesen x
. x
Wir sind die lokalen Variablen der Funktion. Wenn wir also die Funktion ändern x
Werte , wenn der Hauptcodeblock x
nicht beeinträchtigt werden.
Mit dem letzten Satz der print
Erklärung, zeigen wir den wichtigsten Codeblock definierte x
Wert, wodurch bestätigt wird, dass die lokalen Variablen der Funktion beeinflussen ist es nahezu unabhängig von dem vorherigen Anruf.
3. global
Statement
Wenn Sie eine Top-Level - Programmvariablen zugewiesen werden sollen (dh ist es nicht in jedem Bereich vorhanden ist , unabhängig von Funktion oder Klasse), dann müssen Sie der Python - Variable sagen nicht lokal, sondern global * (Global) * a. Wir müssen global
dies in einer Erklärung tun. Da ohne Verwendung global
der CASE - Anweisung, es ist unmöglich , eine variable außerhalb der Funktionszuweisung zu definieren.
Sie können den Wert der außerhalb der Funktion definierten Variablen verwenden (keine Funktion Variable mit dem gleichen Namen angenommen). Allerdings wird dieser Ansatz nicht gefördert werden und soll vermieden werden, da sie nicht eindeutig den Leser Programm ist, können Sie nicht herausfinden , wo die Definition von Variablen ist. Durch die Verwendung der global
Aussagen dieses eindeutig im Codeblock Variable wird in den äußersten definiert sehen.
Fall (Speichern unter function_global.py
):
x = 50
def func():
global x
print('x is', x)
x = 2
print('Changed global x to', x)
func()
print('Value of x is', x)
Ausgang:
x is 50
Changed global x to 2
Value of x is 2
globale Aussage zu erklären , x
eine globale Variable ---- Wenn wir also wie funktionieren , x
wenn die Zuordnung, diese Änderung den Wert von x beeinflussen wird wir im Hauptcodeblock verwendet.
Im gleichen Satz können Sie global
mehr als eine globale Variable Anweisung angeben, zum Beispiel global x, y, z
.
4. Die Standard-Parameterwerte
Bei einigen Funktionen möchten Sie vielleicht einige Parameter optional und verwenden Sie die Standardwerte machen, wollen Sie nicht die Situation , um sie um einen Wert zu vermeiden , bietet. Die Standard - Parameterwerte können helfen , wirksam sein , um diese Situation zu lösen. Sie können einen Zuweisungsoperator (eine Funktionsdefinition anhängen =
) , um die Standard - Parameterwerte für die Parameter angeben.
Zu beachten, dass der Standard-Parameterwert sollte konstant sein. Genauer gesagt sollte das Standardargument Wert unveränderlich sein ---- Dies wird im Detail in den folgenden Kapiteln erläutert. Vorerst nur nicht vergessen, auf der Linie.
Fall (Speichern unter function_default.py
):
def say(message, times=1):
print(message * times)
say('Hello')
say('World', 5)
Ausgang:
Hello
WorldWorldWorldWorldWorld
Benannt say
Funktion für eine bestimmte Anzahl von Malen in Übereinstimmung mit Druck string. Wenn wir keinen Wert liefern, dann standardmäßig druckt nur eine Saite. Wir Parameter times
Standardwert für den angegebenen Parameter 1
dies zu erreichen.
Im ersten Einsatz say
bieten wir nur eine String - Funktion und somit nur eine Zeichenfolge gedruckt wird. In der zweiten Anwendung say
bieten wir sowohl eine Zeichenfolge, während auch einen Parameter bereitstellt 5
, erklärt , dass wir zu * sagen wollen (Say) * string fünfmal.
Hinweis : Es wird nur die Parameter am Ende der Parameterliste kann die Standard - Parameterwerte angegeben werden, was bedeutet , dass die Parameter Standardparameterwerte in der Parameterliste von Funktionen, die nicht kein Argument vor den Standard - Parameterwerten dargestellt werden.
Dies liegt daran , dass die Positionswerte zugeordnet sind , sequentiell Parametric entfernt. Zum Beispiel,def func(a, b=5)
um wirksam zu sein, aberdef func(a=5, b)
ist nicht gültig.
Die Keyword-Argumente
Wenn Sie einige Funktionen mit vielen Parametern haben und Sie nur einige davon angegeben sind, können Sie sie nennen diese Parameter Zuordnung zu geben - das ist die Keyword - Argumente (Stichwort die Argumente) - verwenden wir den Namen ( Stichwort) statt Position (die Art , wie wir verwendet wurden) , um die Parameter - Funktion angeben.
Dies hat zwei Vorteile ---- Erstens haben wir nicht mehr notwendig, die Nutzung des Ordnungsparameter zu berücksichtigen, wird die Funktion viel einfacher sein. Zweitens können wir nur jene Parameter, dass wir auf die Zuordnung geben wollen, solange die anderen Parameter Standard-Parameterwerte haben.
Fall (Speichern unter function_keyword.py
):
def func(a, b=5, c=10):
print('a is', a, 'and b is', b, 'and c is', c)
func(3, 7)
func(25, c=24)
func(c=50, a=100)
Ausgang:
a is 3 and b is 7 and c is 10
a is 25 and b is 5 and c is 24
a is 100 and b is 5 and c is 50
Genannt func
Funktion ist kein Standardparameterwert des Parameters, gefolgt von zwei Parametern der jeweils ein Standard - Parameterwerte aufweisen.
Das erste Mal , wenn die Funktion aufgerufen wird func(3, 7)
, die Parameter a
erhaltenen Werte für 3
die Parameter b
Wert erhalten 7
, und c
gewannen Werte eines Standardparameters 10
.
Beim Aufruf die zweite Funktion, func(25, c=24)
aufgrund seiner Position , in der die variable a
ersten Wert erhalten 25
. Dann wird , wie der Name, die Schlüsselwort - Argument ist ---- ---- angegebene Variablen c
erhaltene Wert 24
. Variable b
erhält die Standard - Parameterwerte 5
.
Wenn die Funktion zum dritten Mal anrufen, func(c=50, a=100)
wir alle den Wert festlegen , Schlüsselwort - Parameter. Zu beachten , dass trotz a
der c
zuvor definierten, aber wir sind immer noch in einer Variablen a
vor der angegebenen Variablen c
.
6. Die variablen Parameter
Manchmal können Sie eine Funktion definieren wollen , die haben kann eine beliebige Anzahl von Variablen, das heißt, ist die Anzahl der Parameter Variable, die unter Verwendung eines Stern erreicht werden kann.
Fall (Speichern unter function_varargs.py
) ::
def total(a=5, *numbers, **phonebook):
print('a', a)
#遍历元组中的所有项目
for single_item in numbers:
print('single_item', single_item)
#遍历字典中的所有项目
for first_part, second_part in phonebook.items():
print(first_part,second_part)
print(total(10,1,2,3,Jack=1123,John=2231,Inge=1560))
Ausgang:
a 10
single_item 1
single_item 2
single_item 3
Inge 1560
John 2231
Jack 1123
None
Wenn wir eine solche deklarieren *param
Zeit Sternchen Argument, Startposition , bis alle Parameter (Positional Argumente) Endung wird von hier aus aufgerufen in einer gesammelt und vereinigt werden param
Tupel (Tuple).
Ebenso, wenn wir eine solche deklarieren **param
Zeit von zwei Sternchen Argumente, alle Keyword - Argumente von hier bis zum Ende zusammen in einem benannten gesammelt und bringen param
Wörterbuch (Dictionary).
Wir werden in späteren Kapiteln mehr über Tupel und Wörterbücher erkunden.
7. return-Anweisung
return
Aussage von der Funktion zurückkehrt , die die Interrupt - Funktion ist. Wir können auch einen Wert zurückgeben aus einer Funktion in der Interrupt - Funktion wählen.
Fall (Speichern unter function_return.py
):
def maximum(x, y):
if x > y:
return x
elif x == y:
return 'The numbers are equal'
else:
return y
print(maximum(2, 3))
Ausgang:
3
maximum
Funktion einen Maximalwert - Parameter, im vorliegenden Ausführungsbeispiel Rückkehr zu Wertfunktion vorgesehen. Es verwendet eine einfache if...else
Erklärung Je größer der Wert und finden Rückkehr .
Zu beachten , dass , wenn return
die Aussage nicht von den Werten übereinstimmen es eine Rückkehr darstellt None
. None
In Python, einem speziellen Typ, repräsentiert Nichts. Zum Beispiel, die eine Variable verwendet wird keinen Wert , um anzuzeigen, wenn der Wert der Wert ist None(虚无)
.
Jede Funktion am Ende ihrer Strafe angedeutet return None
, es sei denn , Sie schreiben Sie Ihre eigene return
Aussage. Sie können laufen print(some_function())
, in dem die some_function
Funktion nicht verwenden return
Aussagen wie folgt aus :
def some_function():
pass
Die Python - pass
Anweisung , um einen Block von Anweisungen ohne Inhalt anzeigt.
Tipp: Es gibt eine eingebaute Funktion namens max erreicht ist diese Funktion „die maximale Anzahl von zu finden“, so dass diese integrierte in-Funktion verwenden, so viel wie möglich.
8. DocStrings
Python hat eine sehr schöne Funktion namens Dokumentation Strings (Dokumentation Strings) , in der Regel einen anderen kürzeren Namen zu verwenden , wenn sie anrufen Docstrings . DocStrings ist ein wichtiges Werkzeug , dass Sie verwenden sollten, kann es Ihnen helfen, besser das Programm aufzeichnen und machen es leichter zu verstehen. Erstaunlicherweise , wenn das eigentliche Programm läuft, können wir auch das Dokument durch eine Funktion erhalten!
Fall (Speichern unter function_docstring.py
):
def print_max(x, y):
'''打印两个数值中的最大数。
这两个数都应该是整数'''
# 如果可能,将其转换至整数类型
x = int(x)
y = int(y)
if x > y:
print(x, 'is maximum')
else:
print(y, 'is maximum')
print_max(3, 5)
print(print_max.__doc__)
Ausgang:
5 is maximum
打印两个数值中的最大数。
这两个数都应该是整数
Die erste Zeile in der logischen Zeile Funktion ist das Funktionszeichendokument string (Docstring) . Docstring zu beachten , hier ist auch anwendbar auf die entsprechenden Abschnitte des später genannten Module (Module) und Klasse (Klasse) .
Das Dokument vereinbarten Zeichenfolge ist eine Kette von mehrzeiligen String, wo die erste Zeile mit einem Großbuchstaben, mit einem Punkt enden. Die zweite Reihe leer ist, die dritte Zeile wird durch den Beginn einer detaillierten Erklärung folgt. 5 Ich empfehlen, dass Sie diese Konvention in allen Dokumentationsstrings folgen alle wichtigen Funktion.
Wir können Funktion verwenden __doc__
(beachten Sie, dass eine der doppelten Unterstrichen ) Attribut Funktion (Name der Funktion gehören) , die erhalten print_max
Dokument String - Eigenschaft. Solange Python wird alles als Objekt erinnert, was natürlich die Funktion enthält. Wir kommen wieder (Klasse) Klasse Abschnitte mehr Details über das Objekt zu diskutieren.
Wenn Sie eine Python verwendet haben help()
Funktion, dann sollten Sie bereits über die Verwendung des Dokuments String kennen. Denn es macht nicht ist die Funktion der bekommen __doc__
Eigenschaft und in einem ordentlichen Weg , um es zu präsentieren. Sie können die oben genannte Funktion versuchen nur in ---- in dem Programm aufgenommen help(print_max)
auf der Linie. Denken Sie daran , dass Sie drücken können , q
um Exit - Taste help
.
Automatisierte Tools können Sie Ihre Bewerbungsunterlagen auf diese Weise abrufen. Daher empfehle ich dringend , dass Sie alle wichtigen Funktionen für Ihre Dokumente zusammen mit String schreiben. Python kommt mit dem Release - pydoc
Befehl help()
in ähnlicher Weise das Dokument String verwenden.
Zusammenfassung
Wir kennen bereits die Funktion von vielen Aspekten, aber wir haben immer noch nicht alle Arten von Funktionen abdecken. Allerdings haben wir fast den ganzen Tag bedeckt Sie den täglichen Gebrauch Python-Funktion verwenden.
Als nächstes werden wir lernen, wie Python-Module erstellen und zu verwenden.