A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2001-October/018101.html below:

[Python-Dev] Dictionary subclasses and exec

[Python-Dev] Dictionary subclasses and execAndrew Kuchling akuchlin@mems-exchange.org
23 Oct 2001 20:13:29 -0000
The following bit of code defines a dictionary that folds all its keys
to lowercase before inserting them, but 'exec "Name = 1" in
LowerCaseDict()' doesn't seem to call my __getitem__(), as the listed
keys include 'Name'.  Should this be expected to work?

--amk

class LowerCaseDict(dictionary):
    def _fold_key (self, key):
        if not isinstance(key, str):
            raise TypeError, "All keys must be strings"
        return key.lower()
    
    def __getitem__ (self, key):
        key = self._fold_key(key)
        return dictionary.__getitem__(self, key)

    def __setitem__ (self, key, value):
        key = self._fold_key(key)
        dictionary.__setitem__(self, key, value)

    def __delitem__ (self, key):
        key = self._fold_key(key)
        dictionary.__delitem__(self, key, value)

d = LowerCaseDict()
exec 'Name = 1' in d
print d.keys()



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