PROJET AUTOBLOG


Sam & Max: Python, Django, Git et du cul

Site original : Sam & Max: Python, Django, Git et du cul

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

Paramètres imbriqués dans une fonction Python

samedi 23 novembre 2013 à 08:24

Une fonction très peu connue de Python est la possibilité de définir un paramètre en indiquant qu’il s’agit d’une séquence. Python va automatiquement appliquer l’unpacking dessus :

>>> def message_geolocalise((long, lat), message):
    print '%s' % message
    print 'Longitude : %s' % long
    print 'Latitude : %s' % lat
...     
>>> point = (4.344, 2.44)
>>> message = "glittering prizes"
>>> message_geolocalise(point, message)
glittering prizes
Longitude : 4.344
Latitude : 2.44

Cette fonctionnalité a été retirée en Python 3, jugée rarement utilisée, et surtout facilement remplaçable par un unpacking explicite :

>>> def message_geolocalise(coord, message):
    long, lat = coord
    print '%s' % message
    print 'Longitude : %s' % long
    print 'Latitude : %s' % lat

En effet, en Python on peut utiliser de l’unpacking imbriqué :

a, (b, c) = [1, [2, 3]]

Et cela a été abusé en le mélangeant la syntaxe des paramètres imbriqués, qui rend le truc franchement illisible.

Voilà, c’était le post “vous aviez un poney que vous ne saviez pas et maintenant que vous le savez vous l’avez plus”.

flattr this!

Error happened! 0 - count(): Argument #1 ($value) must be of type Countable|array, null given In: /var/www/ecirtam.net/autoblogs/autoblogs/autoblog.php:428 http://ecirtam.net/autoblogs/autoblogs/sametmaxcom_a844ada43a979e3b1395ab9acb6afafb84340999/?Param%C3%A8tres-imbriqu%C3%A9s-dans-une-fonction-Python #0 /var/www/ecirtam.net/autoblogs/autoblogs/autoblog.php(999): VroumVroum_Blog->update() #1 /var/www/ecirtam.net/autoblogs/autoblogs/sametmaxcom_a844ada43a979e3b1395ab9acb6afafb84340999/index.php(1): require_once('...') #2 {main}