Ich werde zusammenfassen, was ich über Python-Funktionen gelernt habe.
Eine Funktion ist eine Sammlung von Prozessen. Es wird verwendet, um den Prozess verständlicher zu machen, um ähnliche Prozesse zu extrahieren, zu standardisieren und effizient zu codieren. Übrigens scheint es in Python üblich zu sein, Funktionsnamen zu deklarieren, die durch "_" getrennt sind.
Die Definitionsmethode in Python ist als "def function name ():" definiert. Die Verarbeitung in der Funktion wird durch Verschieben des Einzugs beschrieben. Wenn Sie ein Argument festlegen möchten, beschreiben Sie es in ().
python
#Keine Argumente
def test_function_1():
pass
#Mit Argument
def test_function_2(arg1, arg2):
pass
In Java sieht es so aus.
java
//Keine Argumente
void testFunction1() {
}
//Mit Argument
void testFunction2(String arg1, String arg2) {
}
Die Methode zum Aufrufen von Java ist in Python dieselbe. Es kann mit dem Funktionsnamen () ausgeführt werden.
python
def test_function_1():
print("Die Funktion wurde ausgeführt.")
def test_function_2(arg1):
print("arg1:" + arg1)
#Funktion ausführen
test_function_1() #⇒ Die Funktion wurde ausgeführt.
test_function_2("Ich habe einen Streit bestanden.") # ⇒ arg1:Ich habe einen Streit bestanden.
print(test_function_1()) #⇒ Die Funktion wurde ausgeführt. Keiner
java
//Keine Argumente
void testFunction1() {
System.out.println("Die Funktion wurde ausgeführt.");
}
void testFunction2(String arg1) {
System.out.println("arg1:" + arg1);
}
//Funktion ausführen
testFunction1(); //⇒ Die Funktion wurde ausgeführt.
testFunction2("Ich habe einen Streit bestanden."); // ⇒ arg1:Ich habe einen Streit bestanden.
Wenn Sie keinen Rückgabewert definieren, gibt die Funktion None zurück. Wenn Sie einen Rückgabewert definieren möchten, schreiben Sie am Ende der Funktion "Rückgabewert".
python
def test_function_3():
return "Versuchen Sie, den Rückgabewert zurückzugeben"
#Funktion ausführen
print(test_function_1()) #⇒ Versuchen Sie, den Rückgabewert zurückzugeben
Es ist das gleiche für Java, also werde ich es weglassen.
Sie können Standardwerte für Python-Argumente festlegen. Durch Festlegen kann die Funktion ausgeführt werden, ohne ein Argument mit einem Standardwert anzugeben. In diesem Fall wird der Standardwert wirksam.
python
def test_function_3(arg1, arg2 = "Keine Argumente"):
print("arg1:" + arg1 + " arg2:" + arg2)
#Funktion ausführen
test_function_3("Argument 1") # ⇒ arg1:Argument 1 arg2:Keine Argumente
test_function_3("Argument 1", "Argument 2") # ⇒ arg1:Argument 1 arg2:Argument 2
Java hat keine Funktion wie den Standardwert.
Wenn Sie Argumente mit variabler Länge in Python empfangen möchten, definieren Sie die Funktion, indem Sie dem Argumentnamen "" voranstellen. Das empfangene Ergebnis kann in der Funktion als Tapple verwendet werden. Konventionell werden Argumente mit variabler Länge als " args" bezeichnet. Da dies jedoch üblich ist, funktioniert es auch dann, wenn es nicht args heißt.
python
def test_function_4(*kahen):
print(kahen)
test_function_4("Variable 1", "Variable 2", "Variable 3") # ⇒ ('Variable 1', 'Variable 2', 'Variable 3')
Es kann auch mit regulären Argumenten verwendet werden.
python
def test_function_5(arg1, arg2, *kahen):
print("arg1:" + arg1 + " arg2:" + arg2 + " kahen:" + str(kahen))
test_function_5("Invariante 1", "Invariante 2", "Variable 3", "Variable 4") # ⇒ arg1:Invariante 1 arg2:Invariante 2 kahen:('Variable 3', 'Variable 4')
Schreiben Sie in Java "..." nach dem Typ "String ...".
java
//Keine Argumente
void testFunction4(String... kahen) {
System.out.println(Arrays.toString(kahen));
}
void testFunction5(String arg1, String arg2, String... kahen) {
System.out.println("arg1:" + arg1 + " arg2:" + arg2 + " kahen:" + Arrays.toString(kahen));
}
//Funktion ausführen
testFunction4("Variable 1", "Variable 2", "Variable 3"); // ⇒ [Variable 1, Variable 2, Variable 3]
testFunction5("Invariante 1", "Invariante 2", "Variable 3", "Variable 4"); // ⇒ arg1:Invariante 1 arg2:Invariante 2 kahen:[Variable 3, Variable 4]
Dekorateure sind Python-spezifische Funktionen, die in Java nicht vorhanden sind. Eine Funktion, die eine Funktion als Argument verwendet und die Funktion als Rückgabewert festlegt. Es ist schwer mit Worten allein zu verstehen, also werde ich es schreiben.
Python
def deco(argFun):
def retFun(arg):
print("--Start--Streit:" + arg)
argFun(arg)
print("--End--")
return retFun
def test_function_6(arg):
print("Entkoloniales Argument:" + arg)
deco(test_function_6)("TEST")
# --Start--Streit:TEST
#Entkoloniales Argument:TEST
# --End--
Die Dekorationsfunktion "Deko" ist definiert. Diese Funktion gibt die Funktion "retFun" zurück. "RetFun" ist eine Funktion, die vor und nach der Ausführung der von "deco" empfangenen Funktion ein Protokoll ausgibt. Auf diese Weise ist der Dekorator eine Funktion, die vor und nach der Ausführung der Funktion "test_function_6" eine Verarbeitung hinzufügt (dekoriert). Zusätzlich zu diesen Methoden können Sie auch mit dem Modifikator "@" dekorieren.
Python
def deco(argFun):
def retFun(arg):
print("--Start--Streit:" + arg)
argFun(arg)
print("--End--")
return retFun
@deco
def test_function_7(arg):
print("Decolated@Streit:" + arg)
test_function_7("test")
# --Start--Streit:test
# Decolated@Streit:test
# --End--
Dies ist das Ende der Erklärung der Funktion. Die Idee der Dekorateure ist eine sehr neue Studie für mich, die ich nach Java gekommen bin. Es ist schwer, sich eine gute Art der Verwendung vorzustellen, aber je nachdem, wie Sie es verwenden, kann der Code sehr verwirrend sein, daher würde ich bei der Verwendung sorgfältig überlegen.
Recommended Posts