[issue36000] __debug__ is a keyword but not a keyword

Batuhan report at bugs.python.org
Sat Dec 21 03:34:17 EST 2019


Batuhan <batuhanosmantaskaya at gmail.com> added the comment:

import builtins
builtins.__dict__['__debug__'] = 'Surprise!'
builtins.__dict__['None'] = 'Surprise!'

print(__debug__)
print(None)

 $ ./python ../t.py
True
None

I guess this is related to Python/ast_opt.c transformation

    case Name_kind:
        if (_PyUnicode_EqualToASCIIString(node_->v.Name.id, "__debug__")) {
            return make_const(node_, PyBool_FromLong(!optimize_), ctx_);
        }
        break;

----------

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue36000>
_______________________________________


More information about the Python-bugs-list mailing list