Erste Schritte mit Python für PHPer-Funktionen

Dies ist eine Fortsetzung der vorherigen Super Basics. Dieses Mal werde ich die Unterschiede und Punkte zusammenfassen, die über die Funktion zu beachten sind.

Funktionsdefinition

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".

So übergeben Sie einen Wert an eine Funktion - Teil 1

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')

Argument variabler Länge

Normales Argument mit variabler Länge

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.

Behandeln Sie Schlüsselwortargumente mit variabler Länge

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.

Behandeln Sie sowohl gewöhnliche Argumente als auch Schlüsselwortargumente mit variabler Länge

Sie können sie sogar zusammen verwenden!

# coding=utf8

def func(*args, **kwargs):
	print(args)
	print(kwargs)

func('hoge')
func('hoge', piyo='piyo')

So übergeben Sie einen Wert an eine Funktion - Teil 2

Sie können "list (tupple)" oder "dictionary" verwenden, wenn Sie Werte an eine Funktion übergeben.

Übergeben Sie Argumente als Liste

# 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.

Übergeben Sie Argumente in einem Wörterbuch

# 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. ..

Geben Sie keine Liste / kein Wörterbuch als Standardwert des Arguments an

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

Zusammenfassung

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

Erste Schritte mit Python für PHPer-Funktionen
Erste Schritte mit Python für PHPer-Klassen
1.1 Erste Schritte mit Python
Erste Schritte mit Python
Erste Schritte mit Python
Erste Schritte mit Python für PHPer-Super Basics
Einführung in Python-Funktionen
Erste Schritte mit Python Django (1)
Erste Schritte mit Python Django (4)
Erste Schritte mit Python Django (3)
Einführung in Python Django (6)
Erste Schritte mit Python Django (5)
[Übersetzung] Erste Schritte mit Rust für Python-Programmierer
Einstellungen für den Einstieg in MongoDB mit Python
Erste Schritte mit Julia für Pythonista
Erste Schritte mit Python Grundlagen von Python
Erste Schritte mit Google App Engine für Python und PHP
Erste Schritte mit genetischen Python-Algorithmen
Erste Schritte mit Python 3.8 unter Windows
Erste Schritte mit Python Web Scraping Practice
Erste Schritte mit Python Web Scraping Practice
Erste Schritte mit Dynamo von Python Boto
Erste Schritte mit Lisp für Pythonista: Ergänzung
Django 1.11 wurde mit Python3.6 gestartet
Erste Schritte mit Android!
Erste Schritte mit apache2
Erste Schritte mit Django 1
Einführung in die Optimierung
Erste Schritte mit Numpy
Erste Schritte mit Spark
Erste Schritte mit Jython
Erste Schritte mit Django 2
Erstellen einer Windows 7-Umgebung für eine Einführung in das maschinelle Lernen mit Python
Erste Schritte mit Python mit 100 Klopfen bei der Sprachverarbeitung
Erste Schritte mit AWS IoT in Python
Materialien zum Lesen, wenn Sie mit Python beginnen
Übersetzen Erste Schritte mit TensorFlow
Einführung in Tkinter 2: Button
Erste Schritte mit Go Assembly
Erste Schritte mit PKI mit Golang ―― 4
Beginnen Sie mit Python! ~ ② Grammatik ~
Beginnen Sie mit Python! ~ ① Umweltbau ~
Link, um mit Python zu beginnen
Einführung in Git (1) History-Speicher
Erste Schritte mit Sphinx. Generieren Sie Docstring mit Sphinx
Erste Schritte mit Python
Erste Schritte mit Mathematik Beginnen mit Python Programming Challenge Persönliche Notizen-Problem 1-1
Erste Schritte mit der Cisco Spark REST-API
Python gestartet
Beginnend mit USD unter Windows
Beginnen Sie mit Python mit Blender
Erste Schritte mit der CPU-Diebstahlzeit
Erste Schritte mit Heroku-Viewing Hello World in Python Django mit Raspberry PI 3
[FastAPI] Erste Schritte mit FastAPI, einem ASGI-Webframework von Python
Einfache Schlüsselwortextraktion mit TermExtract für Python
INSERT in MySQL mit Python [Für Anfänger]