Yes Python is turing complete, there is always a solution to everything. You can also do decorators with func = wrapper(func) instead of @wrapper, no need for a new syntax.
Le 26/03/2017 à 20:42, Chris Angelico a écrit : > On Mon, Mar 27, 2017 at 5:22 AM, Michel Desmoulin > <desmoulinmic...@gmail.com> wrote: >> >> >> Le 26/03/2017 à 10:31, Victor Stinner a écrit : >>> print(msg) calls sys.stdout.write(msg): write() expects text, not bytes. >> >> What you are saying right now is that the API is not granular enough to >> just add a parameter. Not that it can't be done. It just mean we need to >> expose stdout.write() encoding behavior. >> >>> I dislike the idea of putting encoding options in print. It's too >>> specific. What if tomorrow you replace print() with file.write()? Do you >>> want to add errors there too? >> >> You would have to rewrite all your calls anyway, because print() call >> str() on things and accept already many parameters while file.write() >> doesn't. > > You can easily make a wrapper around print(), though. For example, > suppose you want a timestamped log file as well as the console: > > from builtins import print as pront # mess with people > @functools.wraps(pront) > def print(*a, **kw): > if "file" not in kw: > logging.info(kw.get("sep", " ").join(a)) > return pront(*a, **kw) > > Now what happens if you add the errors handler? Does this function > need to handle that somehow? > > ChrisA > _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ > _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/