Python Funktionen
Eine Funktion ist ein Block von organisiertem Code, der verwendet wird, um eine einzelne Aufgabe auszuführen. Sie bieten eine bessere Modularität für Ihre Anwendung und Wiederverwendbarkeit.
Funktionsargumente
Eine Funktion kann Argumente und Rückgabewerte entgegennehmen:
Im folgenden Beispiel empfängt die Funktion say_hello das Argument “name” und gibt eine Begrüßung aus:
# Define a function that takes one argument
def say_hello(name):
print(f'Hello {name}')
# Call the function with a string argument
say_hello('Carlos')
Hello Carlos
say_hello('Wanda')
Hello Wanda
say_hello('Rose')
Hello Rose
Schlüsselwortargumente
Um die Lesbarkeit des Codes zu verbessern, sollten wir so explizit wie möglich sein. Dies können wir in unseren Funktionen durch die Verwendung von Keyword Arguments (Schlüsselwortargumenten) erreichen:
# Function with multiple parameters
def say_hi(name, greeting):
print(f"{greeting} {name}")
# Positional arguments: order matters
say_hi('John', 'Hello')
Hello John
# Keyword arguments: order doesn't matter, more readable
say_hi(name='Anna', greeting='Hi')
Hi Anna
Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen
Rückgabewerte
Wenn Sie eine Funktion mit der def-Anweisung erstellen, können Sie mit einer return-Anweisung festlegen, was der Rückgabewert sein soll. Eine Rückgabeanweisung besteht aus Folgendem:
Das Schlüsselwort
return.Der Wert oder Ausdruck, den die Funktion zurückgeben soll.
# Function that returns a value using return statement
def sum_two_numbers(number_1, number_2):
return number_1 + number_2
# Call function and store the returned value
result = sum_two_numbers(7, 8)
print(result)
15
Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen
returnoutputyieldexitLokaler und globaler Gültigkeitsbereich (Scope)
Code im globalen Gültigkeitsbereich kann keine lokalen Variablen verwenden.
Ein lokaler Gültigkeitsbereich kann jedoch auf globale Variablen zugreifen.
Code im lokalen Gültigkeitsbereich einer Funktion kann keine Variablen in einem anderen lokalen Gültigkeitsbereich verwenden.
Sie können denselben Namen für verschiedene Variablen verwenden, wenn diese sich in unterschiedlichen Gültigkeitsbereichen befinden. Das heißt, es kann eine lokale Variable namens
spamund eine globale Variable, die ebenfallsspamheißt, geben.
# Global variable: accessible everywhere
global_variable = 'I am available everywhere'
def some_function():
print(global_variable) # Can access global variable
# Local variable: only exists within this function
local_variable = "only available within this function"
print(local_variable)
# This will raise NameError: local_variable doesn't exist in global scope
print(local_variable)
Traceback (most recent call last):
File "<stdin>", line 10, in <module>
NameError: name 'local_variable' is not defined
Die global-Anweisung
Wenn Sie eine globale Variable innerhalb einer Funktion ändern müssen, verwenden Sie die global-Anweisung:
# Use 'global' keyword to modify global variable from inside function
def spam():
global eggs # Declare that we're modifying the global variable
eggs = 'spam' # This changes the global variable
eggs = 'global'
spam() # Function modifies global variable
print(eggs) # Prints 'spam', not 'global'
spam
Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen
nonlocalglobalexternEs gibt vier Regeln, um festzustellen, ob sich eine Variable in einem lokalen oder globalen Gültigkeitsbereich befindet:
Wenn eine Variable im globalen Gültigkeitsbereich verwendet wird (d. h. außerhalb aller Funktionen), ist sie immer eine globale Variable.
Wenn es in einer Funktion eine
global-Anweisung für diese Variable gibt, ist sie eine globale Variable.Andernfalls, wenn die Variable in einer Zuweisungsanweisung in der Funktion verwendet wird, ist sie eine lokale Variable.
Aber wenn die Variable nicht in einer Zuweisungsanweisung verwendet wird, ist sie eine globale Variable.
Lambda-Funktionen
In Python ist eine Lambda-Funktion eine einzeilige, anonyme Funktion, die eine beliebige Anzahl von Argumenten haben kann, aber nur einen Ausdruck enthalten darf.
From the Python 3 Tutorial
lambda is a minimal function definition that can be used inside an expression. Unlike FunctionDef, body holds a single node.
Single line expression
Lambda functions can only evaluate an expression, like a single line of code.
Diese Funktion:
# Regular function definition
def add(x, y):
return x + y
add(5, 3)
8
Ist äquivalent zur Lambda-Funktion:
# Lambda function: anonymous function defined in one line
# Syntax: lambda arguments: expression
add = lambda x, y: x + y
add(5, 3)
8
Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen
Wie reguläre verschachtelte Funktionen funktionieren auch Lambdas als lexikalische Closures:
# Lambda closure: lambda function that captures variable from outer scope
def make_adder(n):
return lambda x: x + n # Lambda captures 'n' from outer function
# Create functions that add different amounts
plus_3 = make_adder(3) # Returns lambda that adds 3
plus_5 = make_adder(5) # Returns lambda that adds 5
plus_3(4) # Returns 4 + 3 = 7
7
plus_5(4)
9
Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen