On Wed, May 20, 2020 at 10:19 PM James Lu <jam...@gmail.com> wrote:
>
> Thank you for raising a good point. I think we should ban referencing 
> variables
> not in the nearest outer enclosing scope until best practices regarding
> closures emerge. For example:
>
> global_var = 5
> class A:
>     # not ok:
>     def foo(a:=global_var):
>         pass
>     class_var = global_var
>     # ok:
>     def foo(a:=class_var):
>         pass
>
> for a in [1, 2, 3]:
>     # not ok:
>     def callback(a:=a):
>         pass
>     local = a
>     # ok:
>     def callback2(a:=local):
>         pass
>
> This way, the design space is kept open.

Another extremely plausible interpretation is that the expression is
evaluated inside the function itself.

def frobnicate(stuff, start=0, end=len(stuff)):
    ...

I don't think you can punt on this one. The semantics are going to
need to be well-defined from the start.

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/QYGQXI6ABXSVET6NCMENXCXV5OG2E67M/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to