Artikelverzeichnis
Vorwort
Fortsetzung der Studie dieser Woche,
1. Funktion
Die Funktionsdefinition kann mehrere formale Parameter enthalten, daher kann der Funktionsaufruf auch mehrere tatsächliche Parameter enthalten. Es gibt viele Möglichkeiten, tatsächliche Parameter an die Funktion zu übergeben: Positions-tatsächliche Parameter können verwendet werden, und tatsächliche Schlüsselwortparameter können ebenfalls verwendet werden.
1. Positionsargumente
Ordnen Sie die tatsächlichen Parameter anhand der Reihenfolge den formalen Parametern zu.
def describe_pet(animal_type,pet_name):
print("I have a {animal_type}.".format(animal_type = animal_type))
print("My {animal_type} name is {pet_name}".format(animal_type = animal_type,pet_name = pet_name))
describe_pet('harry','hamster')
In diesem Beispiel wird der erste Aktualparameter an den Formalparameter 'harry'
übergeben .animal_type
2. Schlüsselwortargumente
describe_pet(animal_type = 'harry',pet_name = 'hamster')
Es zeigt deutlich an, an welchen formalen Parameter der tatsächliche Parameter übergeben werden soll. Die Reihenfolge ist irrelevant.
3. Standardwert
Sie können einem formalen Parameter beim Definieren einer Funktion einen Standardwert zuweisen. Dieser wird zum Standardwert, wenn Sie dem formalen Parameter beim Aufruf keinen Wert zuweisen. Bei der Definition müssen die Formalparameter mit Standardwerten nach den Formalparametern ohne Standardwerte geschrieben werden, um die Positionsargumente trotzdem korrekt interpretieren zu können.
4. Machen Sie Argumente optional
Manchmal benötigen wir möglicherweise einen formalen Parameter in einer Funktion oder auch nicht. Um sicherzustellen, dass die Funktion normal ausgeführt werden kann, setzen Sie beim Aufruf den Standardwert dieses formalen Parameters auf das Ende, sodass beim Aufruf kein solcher vorhanden ‘ ’
ist Tatsächlicher Parameter, sein Standardwert ist leer. Wenn dieser tatsächliche Parameter vorhanden ist, geben Sie seinen Wert an.
5. Übergeben Sie die Liste an die Funktion
Wenn wir eine Liste an die Funktion übergeben und die Liste in der Funktion ändern, wird beispielsweise auch die Liste der tatsächlichen Parameter geändert (verstanden als Übergabe der Adresse der Liste).
a = [1,2,3,4]
def list_a(a):
a.pop()
list_a(a)
a
[1, 2, 3]
Es ist ersichtlich, dass das letzte Element der Liste a in der Funktion gelöscht wird. Nach dem Aufruf der Funktion ändert sich die Liste a außerhalb der Funktion.
Wenn wir die Liste nur innerhalb der Funktion ändern möchten, die eigentliche Liste a sich jedoch nicht ändert, wie sollen wir das tun?
Eine Kopie der Liste a kann übergeben werden. Folgendermaßen
a = [1,2,3,4]
list_a(a[:])
a
[1, 2, 3, 4]
6. Übergeben Sie eine beliebige Anzahl von Argumenten
Wenn Sie nicht wissen, wie viele Parameter die Funktion akzeptieren muss, können Sie beim Definieren der Funktion nur einen formalen Parameter definieren.
Zum Beispiel
def deng(*x):
print(x)
deng(1)
(1,)
deng(1,2,3,4)
(1, 2, 3, 4)
Wie Sie sehen, fügen Sie vor dem formalen Parameter eine Zahl hinzu *
, die eine beliebige Anzahl tatsächlicher Parameter akzeptieren und alle tatsächlichen Parameter in ein Tupel umwandeln kann.
Beachten Sie, dass wir, wenn es andere Positions- oder Schlüsselwortargumente gibt, *args
diese nach den anderen formalen Parametern platzieren müssen.
7. Übergeben Sie eine beliebige Anzahl von Schlüsselwortargumenten
Wenn wir eine beliebige Anzahl von Argumenten akzeptieren möchten, aber nicht wissen, welche Art von Informationen an die Funktion übergeben werden. Funktionen können so geschrieben werden, dass sie eine beliebige Anzahl von Schlüssel-Wert-Paaren akzeptieren.
Beispiele sind wie folgt:
def build_profile(first_name,last_name,**user_name):
user_name['first_name'] = first_name
user_name['last_name'] = last_name
return user_name
user_profile = build_profile('deng','chao',location = 'princeton',field = 'physics')
print(user_profile)
{
'location': 'princeton', 'field': 'physics', 'first_name': 'deng', 'last_name': 'chao'}
Bei der Definition der Funktion habe ich zwei vor dem formalen Parameter Benutzername hinzugefügt **
. Die Funktion besteht darin, die nachfolgenden Parameter im Wörterbuch Benutzername in Form von Schlüssel-Wert-Paaren zu speichern, und auf dieses Wörterbuch kann auch innerhalb der Funktion zugegriffen werden. Benutzername.