Grundlegende Python-Grammatiklernfunktion – Funktion


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, *argsdiese 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.

Ich denke du magst

Origin blog.csdn.net/weixin_47250738/article/details/130598439
Empfohlen
Rangfolge