[Hikari-Python] <Zusatz> Kapitel 06-05 Funktionen (Argumente und Rückgabewerte 4)

[Python] Kapitel 06-05 Argumente und Rückgabewerte 4

Kapitel 06-04 erläuterte den Fall, in dem das Argument in der Funktion eine Liste war.

Sie können auch andere Datenstrukturen wie Tapples und Wörterbücher als Argumente verwenden. Dieses Mal möchte ich mich damit befassen, Tapples und Wörterbücher als Argumente zu erhalten.

Dieser Abschnitt ist </ font>. Wenn Sie also keine Zeit haben, können Sie ihn überspringen. Darüber hinaus wird erwartet, dass in Zukunft Probleme wie die Handhabung von Tapple- und Wörterbuchargumenten in der grundlegenden Prüfung zum Informationstechniker gestellt werden. Lesen wir sie also.

Beliebige Anzahl von Argumenten ~ Mit Taple empfangen ~

Beim Aufrufen einer Funktion muss die Anzahl der tatsächlichen und formalen Argumente wie im folgenden Programm übereinstimmen. Erstellen Sie eine Datei mit dem Dateinamen samp06-05-01.py </ font> in chap06 </ font> und verwenden Sie den folgenden Code Bitte schreibe.

samp06-05-01.py


def called_func(x, y, z):
    print('Ich laufe in einer Funktion.')
    print(x, y, z)


#called_func(2) #← Da die Anzahl der Argumente nicht übereinstimmt, tritt beim Aufruf der Funktion ein Fehler auf.
called_func(4, -1, 2)

[Ausführungsergebnis] </ font> Ich laufe in einer Funktion. 4 -1 2

Im ersten Funktionsaufruf ** namens_func (2) ** beträgt die Anzahl der tatsächlichen Argumente 1, die Anzahl der formalen Argumente jedoch 3, was nicht übereinstimmt. Wenn Sie diesen Kommentar entfernen, tritt daher ein Fehler auf.

Der nächste Aufruf, ** named_func (4, -1, 2) **, kann aufgerufen werden, da die Anzahl der tatsächlichen und formalen Argumente übereinstimmt.

Python-Funktionen können jedoch beliebig viele Argumente akzeptieren. Das ist die folgende Methode. Ändern Sie das zuvor geschriebene Programm samp06-05-01.py </ font> und schreiben Sie den folgenden Code.

samp06-05-01.py


def called_func(*args):
    print('Ich laufe in einer Funktion.')
    print(args)


called_func(2)    #← Sie können diesmal anrufen
called_func(4, -1, 2)

[Ausführungsergebnis] </ font> Ich laufe in einer Funktion. (2,) Ich laufe in einer Funktion. (4, -1, 2)

Wenn Sie dem formalen Argument \ * (Sternchen) hinzufügen, können Sie sehen, dass es als Taple empfangen wird. Der Inhalt von ** \ * args ** wird in der Funktion ausgegeben, \ * ist jedoch bei der Ausgabe nicht erforderlich. Es wird auch der formale Argumentname ** \ * args ** verwendet, aber das spielt keine Rolle. Die meisten Leute verwenden jedoch (üblicherweise) ** Argumente **. * </ font> args ist eine Abkürzung für argument, was ein Argument bedeutet.

Beliebige Anzahl von Schlüsselwortargumenten-Empfangswörterbuch-

Kapitel 06-03 befasste sich mit Schlüsselwortargumenten. Tatsächlich können Sie dieses Schlüsselwortargument mit einem tatsächlichen Argument angeben und gemeinsam mit einem formalen Argument eine beliebige Zahl erhalten. Erstellen Sie eine Datei mit dem Dateinamen samp06-05-02.py </ font> in chap06 </ font> und verwenden Sie den folgenden Code Bitte schreibe.

samp06-05-02.py


def called_func(**kwargs):
    print('Ich laufe in einer Funktion.')
    print(kwargs)


called_func(x=1, y=2, z=3)

[Ausführungsergebnis] </ font> Ich laufe in einer Funktion. {'x': 1, 'y': 2, 'z': 3}

Wenn Sie dem eigentlichen Argument ein Schlüsselwortargument und dem formalen Argument \ * \ * (zwei Sternchen) hinzufügen, können Sie sehen, dass es als Wörterbuch empfangen wird. Der Inhalt von ** \ * \ * kwargs ** wird in der Funktion ausgegeben, aber \ * \ * ist bei der Ausgabe nicht erforderlich. Es wird auch der formale Argumentname ** \ * \ * kwargs ** verwendet, aber das spielt keine Rolle. Die meisten Leute verwenden jedoch (üblicherweise) ** \ * \ * kwargs **.

Schließlich

Es gibt viele Möglichkeiten, Argumente zu erhalten. Halten wir sie also gedrückt. Ich sehe nicht viele Fälle, in denen ich es als Taple oder Wörterbuch erhalten habe, aber bitte beachten Sie, dass Sie dies auch tun können. Bitte beachten Sie jedoch, dass bei der Prüfung zum Informationsverarbeitungsingenieur möglicherweise Fragen gestellt werden.

Zurück zu [Link zum Inhaltsverzeichnis]

Recommended Posts