2017-05-11 2 views
3

Avoir la fonction suivante:type de style d'annotation (à l'espace ou non à l'espace)

def foo(x=1): 
    print(x) 

Il est clairement indiqué dans PEP 8 qu'aucun espace doit être utilisé autour du signe = lorsqu'il est utilisé pour indiquer un argument mot-clé ou une valeur de paramètre par défaut.

Si nous voulons taper-annoter le paramètre x. Comment devrions-nous le faire?

def foo(x:int=1): 
def foo(x: int=1): 
def foo(x: int = 1): 

Y a-t-il un moyen préféré? Ou encore mieux, est-ce spécifié dans certains PEP? Je ne l'ai pas trouvé dans PEP 484.

+1

En fait, ils ont utilisé des espaces dans ce PEP https://www.python.org/dev/peps/pep-0484/#instantiating-generic-classes-and-type -erasure –

+1

https://www.python.org/dev/peps/pep-3107/#syntax – Nemoden

+0

@vishes_shell Vous avez raison, merci. J'ai juste cherché le mot-clé "espace" dans ce PEP et n'ai rien trouvé (c'est-à-dire aucune règle réelle à part les exemples). – Peque

Répondre

5

The examples in PEP 484 toute utilisation

def foo(x: int = 1): 
+0

Merci pour votre réponse. Il semblait juste un peu étrange d'avoir tous ces espaces quand ils sont découragés dans PEP 8. En outre, il semble qu'il n'y ait pas de règle/recommandation explicite dans PEP 484 à ce propos (seulement les exemples de code). – Peque