04.10.18 11:56, Steven D'Aprano пише:
While keyword arguments have to be identifiers, using **kwargs allows
arbitrary strings which aren't identifiers:

py> def spam(**kwargs):
....     print(kwargs)
....
py> spam(**{"something arbitrary": 1, '\n': 2})
{'something arbitrary': 1, '\n': 2}


There is some discussion on Python-Ideas on whether or not that
behaviour ought to be considered a language feature, an accident of
implementation, or a bug.

Can we get some guidence on this please?

This is an implementation detail. Currently CPython doesn't ensure that keyword argument names are identifiers for performance reasons. But this can be changed in future versions or in other implementations.

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to