Ta fonction rint ressemble à la fonction print de Python 3. Tu essais de la recoder toi-même ?
En tout cas, oui la version de ton Python est la raison de cette erreur de syntaxe. En Python 2 les arguments sous la forme *args doivent toujours être après les arguments normaux et les keywords : def func(arg, *args, **kwargs). Tu ne pourras donc pas implémenter la fonction print de Python 3 en Python 2.
Si tu regardes bien, au moment du kwargs.get, une seconde valeur est passée en paramètre, la valeur par défaut à utiliser si le paramètre n'est pas présent (' ', 'max', sys.stdout).
Python 3.4.2 (default, Dec 29 2014, 15:45:41)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux
>>> def foo(*values, sep=' ', end='\n', file='sys.stdout'):
... for val in enumerate(values):
... val = str(val)
... print('Valeur : %s' % val)
... print('sep : %s --, end : %s --, file : %s' % (sep,end,file))
...
>>> foo()
sep : --, end :
--, file : sys.stdout
>>> foo(1,2)
Valeur : (0, 1)
Valeur : (1, 2)
sep : --, end :
--, file : sys.stdout
Erreur arguments de fonction
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique