2010-02-15 6 views
2

Je suis venu sur quelques lignes de code similaire à celui-ci, mais je ne suis pas sûr que je devrais casser:Comment briser la ligne suivante de python

blueprint = Blueprint(self.blueprint_map[str(self.ui.blueprint_combo.currentText())], runs=self.ui.runs_spin.text(), me=self.ui.me_spin.text(), pe=self.ui.pe_skill_combo.currentIndex()) 

Merci à l'avance

+0

Je trouve en laissant une parenthèse (ou l'ajout d'un supplément) est un bon moyen. – outis

+0

Merci à tous pour les bonnes réponses, la première a l'air "la plus jolie" à mes yeux, mais merci pour la réaction rapide! – FrederikNS

Répondre

14
blueprint = Blueprint(
    self.blueprint_map[str(self.ui.blueprint_combo.currentText())], 
    runs=self.ui.runs_spin.text(), 
    me=self.ui.me_spin.text(), 
    pe=self.ui.pe_skill_combo.currentIndex(), 
) 
0

Partout dans les supports doivent travailler, tels que:

blueprint = Blueprint(self.blueprint_map[str(self.ui.blueprint_combo.currentText())], 
     runs=self.ui.runs_spin.text(), me=self.ui.me_spin.text(), 
     pe=self.ui.pe_skill_combo.currentIndex()) 
+1

-1: cela viole les conventions PEP 8. L'indentation suspendue est bonne, mais "il ne devrait y avoir aucun argument sur la première ligne". Mieux vaut rompre à la parenthèse ouvrante et aligner le contenu des parenthèses sur les lignes de continuation à un retrait cohérent de 8 (ou 4) colonnes. – bignose

0
blueprint = Blueprint(self.blueprint_map[str(self.ui.blueprint_combo.currentText())], 
         runs=self.ui.runs_spin.text(), me=self.ui.me_spin.text(), 
         pe=self.ui.pe_skill_combo.currentIndex()) 
+1

-1: Si vous modifiez la longueur de la première ligne, les lignes de continuation seraient alors mal alignées. Mieux vaut faire un seul niveau d'indentation standard. – bignose

4

que je le ferais de cette façon:

blueprint = Blueprint(
       self.blueprint_map[str(self.ui.blueprint_combo.currentText())], 
       runs=self.ui.runs_spin.text(), 
       me=self.ui.me_spin.text(), 
       pe=self.ui.pe_skill_combo.currentIndex()) 
+0

+1, mais utilisez une indentation standard de 8 (ou 4) colonnes. – bignose

+0

-1 pour le retrait grand et arbitraire. Si la disposition de la première ligne change (par exemple en changeant le nom de 'blueprint'), vous devez modifier le retrait sur toutes les lignes suivantes. Mieux vaut utiliser un retrait normal de 4 caractères. –

5

Que diriez-vous de cette

blueprint_item = self.blueprint_map[str(self.ui.blueprint_combo.currentText())] 
blueprint = Blueprint(blueprint_item, 
         runs=self.ui.runs_spin.text(), 
         me=self.ui.me_spin.text(), 
         pe=self.ui.pe_skill_combo.currentIndex()) 
+0

Le nom de la variable intermédiaire n'ajoute aucune information supplémentaire, donc dans ce cas je serais en faveur de l'éliminer. Cela pourrait facilement être fait de manière lisible si vous n'avez pas trop indenté les arguments de Blueprint(). Garder les arguments alignés avec l'accolade openiong comme ceci est commun, mais erroné car cela signifie que si la disposition de la première ligne change (par exemple en changeant le nom de 'blueprint') alors vous devez changer le retrait sur toutes les lignes suivantes. Mieux vaut utiliser un retrait normal de 4 caractères. –

Questions connexes