Vous pouvez facilement le faire en déclarant votre fonction comme ceci:
def filter(**kwargs):
votre fonction sera maintenant passé un dictionnaire appelé kwargs qui contient les mots-clés et des valeurs passées à votre fonction. Notez que, syntaxiquement, le mot kwargs
n'a pas de sens; le **
est ce qui provoque le comportement du mot-clé dynamique.
Vous pouvez également faire l'inverse. Si vous appelez une fonction, et vous avez un dictionnaire qui correspond aux arguments, vous pouvez faire
someFunction(**theDictionary)
Il y a aussi le moins utilisé * variante foo, ce qui vous fait de recevoir un tableau d'arguments. Ceci est similaire aux tableaux vararg normaux.
Voir http://stackoverflow.com/questions/310732/in-django-how-does-one-filter-a-queryset-with-dynamic-field-lookups –