Dies ist eine Fortsetzung der vorherigen Super Basics. Dieses Mal werde ich die Unterschiede und Punkte zusammenfassen, die über die Funktion zu beachten sind.
Wie ich in Super Basics erklärt habe, handelt es sich um eine Überprüfung.
Zunächst PHP-Code.
<?php
function func() {
echo 'hoge';
}
func();
Dies ist der Python-Code.
# coding=utf8
def func(): #Letzte: (Doppelpunkt)Vergiss nicht!
print('hoge')
func()
PHP verwendet function
, aber Python verwendet def
.
Python verwendet nicht "{}", um Bereiche darzustellen, sondern "Einzug".
Die Grundlagen von PHP und Python sind nicht so unterschiedlich. In einer Python-Funktion gibt es jedoch ein sogenanntes "Schlüsselwortargument". Nehmen wir ein Beispiel.
Wenn Sie PHP verwenden, stoßen Sie möglicherweise auf eine Funktion mit einer großen Anzahl von Argumenten, die einen Standardwert haben. Wenn Sie dann nur das letzte Argument auf einen anderen Wert als den Standardwert setzen möchten, müssen Sie wie folgt schreiben.
<?php
function func($hoge='hoge', $piyo='piyo', $foo='foo', $bar='bar') {
echo $hoge . PHP_EOL;
echo $piyo . PHP_EOL;
echo $foo . PHP_EOL;
echo $bar . PHP_EOL;
}
//Wenn Sie den 4. Wert auf einen anderen Wert als den Standardwert setzen möchten, müssen Sie auch den 1. bis 3. Wert schreiben.
func('hoge', 'piyo', 'foo', 'fizz');
Das "Schlüsselwortargument" ist in solchen Fällen nützlich! Nur das angegebene Argument kann durch Schreiben auf eine spezielle Weise übergeben werden, die PHP nicht hat.
# coding=utf8
def func(hoge='hoge', piyo='piyo', foo='foo', bar='bar'):
print(hoge)
print(piyo)
print(foo)
print(bar)
#Sie können nur den angegebenen Ort passieren!
func(bar='fizz')
Bei der Implementierung einer Funktion mit Argumenten variabler Länge sieht PHP folgendermaßen aus:
<?php
function func() {
$args = func_get_args();
var_dump($args);
}
func('hoge');
func('hoge', 'piyo');
Dies in Python auszudrücken sieht so aus!
# coding=utf8
def func(*args):
print(args)
func('hoge')
func('hoge', 'piyo')
Fügen Sie einfach "*" am Anfang des Argumentnamens hinzu.
Der Argumentname args
ist nicht festgelegt und kann ein beliebiger Name sein.
Die "args variable" kann als "unveränderliches Array (Taple)" behandelt werden.
Es ist sehr einfach.
Sie können auch das zuvor veröffentlichte Schlüsselwortargument mit variabler Länge erhalten.
# coding=utf8
def func(**kwargs):
print(kwargs)
func(hoge='hoge')
func(hoge='hoge', piyo='piyo')
Fügen Sie für "Schlüsselwortargument" einfach "**" am Anfang des Argumentnamens hinzu. In diesem Fall kann es als "Wörterbuch von Paaren von Argumentnamen und -werten" anstelle von "tapple" behandelt werden.
Sie können sie sogar zusammen verwenden!
# coding=utf8
def func(*args, **kwargs):
print(args)
print(kwargs)
func('hoge')
func('hoge', piyo='piyo')
Sie können "list (tupple)" oder "dictionary" verwenden, wenn Sie Werte an eine Funktion übergeben.
# coding=utf8
def func(hoge, piyo):
print(hoge)
print(piyo)
args = ['foo', 'bar']
#Die Reihenfolge der Argumente entspricht der Reihenfolge der Liste.
func(*args)
Es ähnelt dem Argument mit variabler Länge. Indem Sie dem Namen der Variablen, in der die Liste gespeichert ist, "*" hinzufügen und an die Funktion übergeben, können Sie das "Listenelement" als Argument behandeln.
# coding=utf8
def func(hoge, piyo):
print(hoge)
print(piyo)
kwargs = {
'hoge': 'foo',
'piyo': 'bar',
}
func(**kwargs)
Ähnlich wie bei der "Listenmethode" wird der Wert dem Argument zugewiesen, das dem "Schlüssel (Index)" entspricht, wenn Sie dem Namen der Variablen, in der das "Wörterbuch" gespeichert ist, "**" hinzufügen und an die Funktion übergeben. Gehen. Beachten Sie jedoch, dass ein Fehler auftritt, wenn Sie einen Argumentnamen schreiben, der nicht im Schlüssel (Index) vorhanden ist. ..
Ich werde den Teil vorstellen, von dem ich ein wenig süchtig war. Schauen Sie sich zuerst den PHP-Code an.
<?php
function func($hoge=array('foo')) {
#in hoge array'bar'Das Element wurde hinzugefügt.
$hoge[] = 'bar';
var_dump($hoge);
}
func();
func();
Ich rufe zweimal eine Funktion auf, die "$ hoge = array ('foo')" "bar" hinzufügt und ausgibt. Ich denke, dass das Ausführungsergebnis jeder Funktion das gleiche sein wird. Wenn dies in Python geschrieben ist, sieht es wie folgt aus.
# coding=utf8
def func(hoge=['foo']):
#auf der Hoge-Liste'bar'Das Element wurde hinzugefügt.
hoge.append('bar')
print(hoge)
func()
func()
Tatsächlich funktioniert dieser Python-Code nicht wie erwartet **! !! !! !! !! ** ** ** Diejenigen, die sie tatsächlich ausgeführt und verglichen haben, sollten bestätigt haben, dass die Ausführungsergebnisse unterschiedlich sind. Ich überlasse die ausführliche Erklärung anderen, aber hier ** Verwenden Sie keine Listen und Wörterbücher für die Standardwerte der Argumente! Bitte denk daran **.
Python-Funktionen sind sehr flexibel. Besonders das "Schlüsselwortargument" ist mächtig, also denken Sie bitte daran. Als nächstes Erklärung der Klassen!
Recommended Posts