On Sat, Oct 23, 2021, 11:46 PM David Mertz, Ph.D. > def f(x=defer: a + b): >> a, b = 3, 5 >> return x >> >> Would this return 8, or a defer-expression? If 8, then the scope isn't >> truly dynamic, since there's no way to keep it deferred until it moves to >> another scope. If not 8, then I'm not sure how you'd define the scope or >> what triggers its evaluation. > > Oh... Keep in mind I'm proposing a strawman deliberately, but the most natural approach to keeping an object deferred rather than evaluated is simply to say so:
def f(x=defer: a + b): a, b = 3, 5 fn2(defer: x) # look for local a, b within fn2() if needed # ... other stuff return x # return 8 here
_______________________________________________ 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/YXM3T2AXCL23EVWXE5JR6QOHQJTIZEFY/ Code of Conduct: http://python.org/psf/codeofconduct/