Bonsoir,
La première ligne récupère l'attribut get... de bclient.
Un attribut peut être tout type de variable y compris une fonction (on parle de méthode lorsque c'est dans une classe).
Exemple avec self.value = "jack"
Ça reviendra à écrire : get_value = bclient.get_jack_value
puis puisque l'attribut semble être une fonction retournant une liste/tuple de 2 valeurs, revenant à écrire ceci :
result = get_value()
db_value = result[0]
current_value = result[1]
Pour la syntaxe utilisée dans votre exemple il s'agit d'unpaking :
db_value, current_value = (1, 2)
On pourrait encore réduire l'écriture par ceci:
db_value, current_value = getattr(bclient, 'get_%s_value' % self.value)()
Mais c'est moins évident à lire.
Pour l'essai :
1 2 3 4 5
| class bclient(object):
def get_jack_value():
return (1, 2)
db_value, current_value = getattr(bclient, 'get_%s_value' % "jack")() |
Partager