Terry J. Reedy added the comment:

As near as I can tell, "class A: n = n" currently works the same at module and 
nested scope, the latter with or without nonlocal n.

>>> class A: n=n
[...]
NameError: name 'n' is not defined

>>> def f():
        class A: n=n
        
>>> f()
[...]
NameError: name 'n' is not defined

>>> def f(n):
        class A: n=n
        
>>> f(2)
[...]
NameError: name 'n' is not defined

Repeat after 'n=1' at module scope and the NameErrors disappear. It appears 
that you are asking that the class statement be made to act differently when 
nested instead of the same. This would break code that depends on the current 
behavior. This would need discussion on python-ideas and pydev lists.

----------
nosy: +terry.reedy
stage:  -> test needed
type:  -> enhancement
versions: +Python 3.5

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue19979>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to