On Thu, Dec 2, 2021 at 8:50 AM Barry Scott <ba...@barrys-emacs.org> wrote: > > > > > On 1 Dec 2021, at 17:59, Chris Angelico <ros...@gmail.com> wrote: > > > > On Thu, Dec 2, 2021 at 4:40 AM Barry Scott <ba...@barrys-emacs.org> wrote: > >> > >> On 1 Dec 2021, at 06:16, Chris Angelico <ros...@gmail.com> wrote: > >> 3) If "yes" to question 1, would you use it for any/all of (a) mutable > >> defaults, (b) referencing things that might have changed, (c) > >> referencing other arguments, (d) something else? > >> > >> > >> yes (a) > >> What does (b) mean? example please. > >> yes (c) > >> > > > > global_default = 500 > > def do_thing(timeout=>global_default): ... > > > > > If the global_default timeout changes between function definition and > > call, omitting timeout will use the updated global. > > > > Similarly, you could say "file=>sys.stdout" and if code elsewhere > > changes sys.stdout, you'll use that. > > On a case-by-case basis I might still put defaulting into the body > of the function if that made the intent clearer. > > I could see me using @file=sys.stdout. >
That's a simplified version, but you might have the same default shown as get_default_timeout() or Defaults.timeout or something like that. The point is that it might be a simple integer, but it could change at any time, and the default should always be "whatever this name refers to". In any case, it's just one of many use-cases. I was curious what people would use and what they wouldn't. ChrisA _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/24RHPWAN6TF2LE74QM7GCRHW6EUUSZWH/ Code of Conduct: http://python.org/psf/codeofconduct/