2017-09-26 4 views
0

Je ne trouve aucune référence PEP à l'utilisation d'une ligne vide avant le retour, donc je voudrais savoir quelle est la pratique courante.Ligne vide avant l'instruction return dans une fonction Python

Exemple A1:

def add(a,b): 
    """ docstrings""" 
    a = a + 2 
    b = b + 2 
    c = a +b 
    return c 

Exemple A2:

def add(a,b): 
    """ docstrings""" 
    a = a + 2 
    b = b + 2 
    c = a +b 

    return c 

Exemple B1:

def add(a,b): 
    """ docstrings""" 
    if a > b: 
     c = a + b 
    else: 
     c = a -b 
    return c 

Exemple B2:

def add(a,b): 
    """ docstrings""" 
    if a > b: 
     c = a + b 
    else: 
     c = a -b 

    return c 

Exemple C1:

def add(a): 
    """ docstrings""" 
    for i in range(3): 
     a = a + i 
    return a 

Exemple C2:

def add(a): 
    """ docstrings""" 
    for i in range(3): 
     a = a + i 

    return a 

Lesquels sont la pratique courante dans ces cas d'utilisation (A, B, C)? Est-ce que quelque chose change quand un bloc de if-else ou une boucle est impliqué avant la déclaration de retour?

+3

Il n'y a pas de pratique courante. Je préfère avoir une ligne vide avant la déclaration de retour, d'autres pourraient préférer ne pas. Suivez la convention du projet sur lequel vous travaillez, ou respectez la vôtre si c'est un nouveau projet. – Maroun

+1

De [PEP8] (https://www.python.org/dev/peps/pep-0008/#blank-lines): "_Utilisez des lignes vides dans les fonctions, avec parcimonie, pour indiquer les sections logiques._". Cela dépend de la préférence personnelle ou des conventions du projet, comme l'a dit Maroun. Pour moi, c'est une décision par cas; dans de petites fonctions comme la vôtre, je ne laisse habituellement pas de ligne blanche avant la déclaration de retour. –

+0

En ce qui concerne les lignes vides après docstrings, voir les exemples dans [PEP 257] (https://www.python.org/dev/peps/pep-0257/): pas de ligne vide. –

Répondre

2

Il n'y a pas de pratique courante (au moins, j'ai vu Aucun dans les styles PEP) pour return s et lignes vides.

Mais il y a une concernant des lignes vides et la docstring (voir PEP 257):

Il n'y a pas de ligne blanche avant ou après l'docstring.

Mais aussi:

Insérer une ligne blanche après tous docstrings (une ligne ou plusieurs lignes) qui documentent une classe - d'une manière générale, les méthodes de la classe sont séparés les uns des autres par une seule ligne vide, et la docstring doit être décalée de la première méthode par une ligne vide.

(Non souligné)

J'ai souvent vu des lignes vides après des boucles, également des lignes parfois vides avant return mais qui dépend de la longueur de la fonction/boucle. Il est souvent plus important de choisir un style (s'il n'y a pas de convention existante) et de s'y tenir.

Comme PEP8 le dit:

Un guide de style est une question de cohérence. La cohérence avec ce guide de style est importante. La cohérence au sein d'un projet est plus importante. La cohérence au sein d'un module ou d'une fonction est la plus importante.

Cependant, il est important que pep8 recommande d'utiliser des lignes vides avec parcimonie et pour séparer les sections logiques (je ne pense pas que ce soit une section logique de « retour », mais YMMV):

Utiliser des lignes vides dans fonctions, avec parcimonie, pour indiquer sections logiques.

(Non souligné)