Je vais résumer ce que j'ai appris sur les fonctions python.
Une fonction est un ensemble de processus. Il est utilisé pour rendre le processus plus facile à comprendre afin d'extraire des processus similaires, de les standardiser et de les coder efficacement. Au fait, en python, il semble habituel de déclarer les noms de fonctions séparés par "_".
La méthode de définition en python est définie comme "def function name ():". Le traitement dans la fonction est décrit en déplaçant le retrait. Si vous souhaitez définir un argument, décrivez-le entre ().
python
#Aucun argument
def test_function_1():
pass
#Avec argument
def test_function_2(arg1, arg2):
pass
Cela ressemble à ceci en java.
java
//Aucun argument
void testFunction1() {
}
//Avec argument
void testFunction2(String arg1, String arg2) {
}
La méthode d'appel de java est la même en python. Il peut être exécuté avec le nom de la fonction ().
python
def test_function_1():
print("La fonction a été exécutée.")
def test_function_2(arg1):
print("arg1:" + arg1)
#Exécuter la fonction
test_function_1() #⇒ La fonction a été exécutée.
test_function_2("J'ai passé une dispute.") # ⇒ arg1:J'ai passé une dispute.
print(test_function_1()) #⇒ La fonction a été exécutée. Aucun
java
//Aucun argument
void testFunction1() {
System.out.println("La fonction a été exécutée.");
}
void testFunction2(String arg1) {
System.out.println("arg1:" + arg1);
}
//Exécuter la fonction
testFunction1(); //⇒ La fonction a été exécutée.
testFunction2("J'ai passé une dispute."); // ⇒ arg1:J'ai passé une dispute.
Si vous ne définissez pas de valeur de retour, la fonction retournera None. Si vous souhaitez définir une valeur de retour, écrivez «valeur de retour de retour» à la fin de la fonction.
python
def test_function_3():
return "Essayez de renvoyer la valeur de retour"
#Exécuter la fonction
print(test_function_1()) #⇒ Essayez de renvoyer la valeur de retour
C'est la même chose pour java, donc je vais l'omettre.
Vous pouvez définir des valeurs par défaut pour les arguments python. En définissant, la fonction peut être exécutée sans spécifier d'argument avec une valeur par défaut. Dans ce cas, la valeur par défaut prendra effet.
python
def test_function_3(arg1, arg2 = "Aucun argument"):
print("arg1:" + arg1 + " arg2:" + arg2)
#Exécuter la fonction
test_function_3("Argument 1") # ⇒ arg1:Argument 1 arg2:Aucun argument
test_function_3("Argument 1", "Argument 2") # ⇒ arg1:Argument 1 arg2:Argument 2
java n'a pas de fonctionnalité comme la valeur par défaut.
Si vous souhaitez recevoir des arguments de longueur variable en python, définissez la fonction en préfixant le nom de l'argument avec "". Le résultat reçu peut être utilisé dans la fonction comme un taple. Par convention, les arguments de longueur variable sont nommés " args". Cependant, comme il s'agit d'une convention, cela fonctionne même s'il n'est pas nommé args.
python
def test_function_4(*kahen):
print(kahen)
test_function_4("Variable 1", "Variable 2", "Variable 3") # ⇒ ('Variable 1', 'Variable 2', 'Variable 3')
Il peut également être utilisé avec des arguments réguliers.
python
def test_function_5(arg1, arg2, *kahen):
print("arg1:" + arg1 + " arg2:" + arg2 + " kahen:" + str(kahen))
test_function_5("Invariant 1", "Invariant 2", "Variable 3", "Variable 4") # ⇒ arg1:Invariant 1 arg2:Invariant 2 kahen:('Variable 3', 'Variable 4')
En Java, écrivez "..." après le type comme String ...
java
//Aucun argument
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));
}
//Exécuter la fonction
testFunction4("Variable 1", "Variable 2", "Variable 3"); // ⇒ [Variable 1, Variable 2, Variable 3]
testFunction5("Invariant 1", "Invariant 2", "Variable 3", "Variable 4"); // ⇒ arg1:Invariant 1 arg2:Invariant 2 kahen:[Variable 3, Variable 4]
Les décorateurs sont des fonctionnalités spécifiques à Python qui n'existent pas en Java. Une fonction qui prend une fonction comme argument et définit la fonction comme valeur de retour. C'est difficile à comprendre avec des mots seuls, alors je vais l'écrire.
Python
def deco(argFun):
def retFun(arg):
print("--Start--argument:" + arg)
argFun(arg)
print("--End--")
return retFun
def test_function_6(arg):
print("Argument décolé:" + arg)
deco(test_function_6)("TEST")
# --Start--argument:TEST
#Argument décolé:TEST
# --End--
La fonction décoratrice "déco" est définie. Cette fonction renvoie la fonction "retFun". "RetFun" est une fonction qui produit un journal avant et après l'exécution de la fonction reçue par "deco". De cette manière, le décorateur est une fonction qui ajoute (décore) le traitement avant et après l'exécution de la fonction "test_function_6". En plus de ces méthodes, vous pouvez également décorer en utilisant le modificateur "@".
Python
def deco(argFun):
def retFun(arg):
print("--Start--argument:" + arg)
argFun(arg)
print("--End--")
return retFun
@deco
def test_function_7(arg):
print("Decolated@argument:" + arg)
test_function_7("test")
# --Start--argument:test
# Decolated@argument:test
# --End--
C'est la fin de l'explication de la fonction. L'idée des décorateurs est une toute nouvelle étude pour moi qui suis venu à Java. Il est difficile de penser à un bon moyen de l'utiliser, mais selon la façon dont vous l'utilisez, le code peut être très déroutant, alors j'aimerais bien réfléchir lorsque vous l'utilisez.
Recommended Posts