2010-09-27 17 views

Répondre

49

En Python, le _ est souvent utilisé comme espace réservé ignoré.

(path, _) = self._treeView.get_cursor() 

Vous pouvez également éviter le déballage car un tuple est indexable.

def get_selected_index(self): 
    return self._treeView.get_cursor()[0][0] 
+17

Il convient de noter que '_' n'est pas toute sorte de magie syntaxique, mais une convention (bien sûr, il est une convention reconnue par IDEs et pylint, et les conventions de Python sont assez fort ...) – detly

+1

Python serait ne sois rien sans conventions! – fredley

+2

Cette convention est-elle documentée? – Nathan

4

Si vous ne se soucient pas de la deuxième question, pourquoi ne pas simplement extraire la première:

def get_selected_index(self): 
    path = self._treeView.get_cursor()[0] 
    return path[0] 
+0

Notez que le retour doit maintenant être 'return path', pas' return path [0] ' –

+3

Ceci est plus faible, car il supprime l'affirmation qu'il y a exactement deux éléments. –

+0

@Michael Mior: J'ai annulé votre edit: Basé sur la question originale, il devrait toujours être 'path [0]' ('path' semble être une séquence elle-même) – Steven

0

il semble assez, je ne sais pas si une bonne performance.

a = (1, 2, 3, 4, 5) 
x, y = a[0:2]