2009-08-19 7 views
11

Il ya probablement une réponse facile pour cela, mais je ne sais pas comment le sortir de mes recherches.Python PEP8 impression enroulé chaînes sans indent

Je adhère à PEP8 dans mon code python, et j'utilise actuellement OptionParser pour un script que j'écris. Pour empêcher les lignes d'aller au-delà de 80, j'utilise le backslash là où c'est nécessaire.

Par exemple:

if __name__=='__main__': 
    usage = '%prog [options]\nWithout any options, will display 10 random \ 
    users of each type.' 
    parser = OptionParser(usage) 

Ce tiret après le backslash résultats dans:

~$ ./er_usersearch -h 
Usage: er_usersearch [options] 
Without any options, will display 10 random  users of each type. 

Cet écart après des bugs "aléatoires" moi. Je pourrais faire:

if __name__=='__main__': 
    usage = '%prog [options]\nWithout any options, will display 10 random \ 
users of each type.' 
    parser = OptionParser(usage) 

Mais cela me dérange autant. Cela semble stupide:

if __name__=='__main__': 
    usage = ''.join(['%prog [options]\nWithout any options, will display', 
        ' 10 random users of each type.']) 
    parser = OptionParser(usage) 

Il doit y avoir un meilleur moyen?

Répondre

1

essayez ceci:

if __name__=='__main__': 
    usage = '%prog [options]\nWithout any options, will display 10 random ' \ 
    'users of each type.' 
    parser = OptionParser(usage) 
+0

La barre oblique est pas nécessaire de fusionner les citations ensemble. – bobpaul

+0

ouais mais le rend probablement plus évident. Je ne l'omettrais pas moi-même. – Peter

3

Cela fonctionne:

if __name__=='__main__': 
    usage = ('%prog [options]\nWithout any options, will display 10 random ' 
    'users of each type.') 
    parser = OptionParser(usage) 

Bien que j'étalez comme ceci:

if __name__=='__main__': 
    usage = ('%prog [options]\n' 
      'Without any options, will display 10 random users ' 
      'of each type.') 
    parser = OptionParser(usage) 

(Je commence une nouvelle ligne quand il y a une \n dans la chaîne, ainsi que quand je dois envelopper le mot code source.)