> > I created a derived class of the standard `dict' that fills in a > > default value when a key is not found. This is exactly the same as > > Guido describes in his "descintro" paper. I tried to use this > > dictionary as the "globals" parameter with eval(). As Guido > > already describes in his paper, this doesn't work. > > I've wanted this for years and think it would be an important > improvement. Unfortunately, it appears to be a problem without > a simple solution. The solution appears simple (use PyObject_GetItem etc. instead of PyDict_GetItem) but would cause serious performance hits: the dict API and its implementatio are highly optimized for this; PyObject_GetItem would add several levels of function calls, *plus* more reference count handling and exception handling. Oren Tirosh's global/builtin lookup speedup would be impossible. (Oren, how's that coming?) In addition, I'm concerned that this would become a popular tool to hack Python's semantics in all sorts of ways. While hacking the semantics is essential for some situations, in most cases this causes more problems than it solves because you can't use standard tools like PyChecker when you change something as fundamental as how variable references are resolved. --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4