Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fonction et sous-fonction dont les arguments portent le même nom

2 réponses
Avatar
Olivier
Bonjour =E0 tous,
J'ai une fonction principale qui appelle trois, ou plus, sous-fonctions. la=
fonction principale prend un certain nombre d'arguments, les analysent et =
d=E9l=E8gue une partie du travail =E0 ces sous fonctions. Les arguments que=
prennent ces sous-fonctions ont donc le m=EAme nom que ceux de la fonction=
principale. Ci-dessous un exemple:
<code>
#!/usr/bin/env python

def main_function(arg1 =3D None, arg2 =3D None):
print "result_1 =3D "+sub_function_1(arg1 =3D arg1)
print "result_2 =3D "+sub_function_2(arg1 =3D arg2)

def sub_function_1(arg1 =3D None):
return str(arg1)


def sub_function_2(arg1 =3D None):
return str(arg1)

if __name__ =3D=3D "__main__":
main_function(arg1 =3D 5, arg2 =3D "a")
</code>

La question que je me pose est de savoir si ceci pouvait poser un probl=E8m=
e et si je devais ou pas donner des noms diff=E9rents aux arguments de la f=
onction principale et a ceux des sous fonctions.

Dans mon programme cela semble fonctionner sans probl=E8me mais celui ci co=
mmence =E0 prendre de l'ampleur et va en prendre de plus en plus.=20

D'avance je vous remercie pour vos r=E9ponse.

Olivier

2 réponses

Avatar
Alain Ketterlin
Olivier writes:


Tout d'abord, pourrais-tu veiller à ce que les lignes de tes messages ne
dépassent pas 80 caractères ?

def main_function(arg1 = None, arg2 = None):
print "result_1 = "+sub_function_1(arg1 = arg1)
print "result_2 = "+sub_function_2(arg1 = arg2)

def sub_function_1(arg1 = None):
return str(arg1)



Ca ne pose pas de problème, les deux ensembles de noms ne sont pas dans
le même "namespace".

Cela dit, on n'est pas obligé d'utiliser des arguments nommés
systématiquement... La position suffit dans la grande majorité de s cas.

-- Alain.
Avatar
Laurent Claessens
Le 28/06/2011 13:10, Alain Ketterlin a écrit :
Olivier writes:


Tout d'abord, pourrais-tu veiller à ce que les lignes de tes messages ne
dépassent pas 80 caractères ?

def main_function(arg1 = None, arg2 = None):
print "result_1 = "+sub_function_1(arg1 = arg1)
print "result_2 = "+sub_function_2(arg1 = arg2)

def sub_function_1(arg1 = None):
return str(arg1)



Ca ne pose pas de problème, les deux ensembles de noms ne sont pas dans
le même "namespace".



Du point de vue de la lisibilité, je dirais même que c'est mieux de
donner le même nom si ce sont a priori les mêmes objets.

mon centime et demi
Laurent