annoying dictionary problem, non-existing keys
Michele Petrazzo
michele.petrazzo at TOGLIunipex.it
Thu Apr 24 09:43:38 EDT 2008
bvidinli wrote:
> i use dictionaries to hold some config data, such as:
>
> conf={'key1':'value1','key2':'value2'} and so on...
>
> when i try to process conf, i have to code every time like: if
> conf.has_key('key1'): if conf['key1']<>'': other commands....
>
>
> this is very annoying. in php, i was able to code only like: if
> conf['key1']=='someth'
>
> in python, this fails, because, if key1 does not exists, it raises an
> exception.
>
That is one of python rules:
>>> import this
(cut)
Explicit is better than implicit.
(cut)
php hide some thing that python expose.
> MY question: is there a way to directly get value of an
> array/tuple/dict item by key, as in php above, even if key may not
> exist, i should not check if key exist, i should only use it, if it
> does not exist, it may return only empty, just as in php....
>
> i hope you understand my question...
>
You can simple modify the dict behavior:
>>> class my_dict(dict):
... def __getitem__(self, item):
... if item in self:
... return super(my_dict, self).__getitem__(item)
... else:
... return ''
...
>>> d = my_dict()
>>> d["a"]
''
>>> d["a"] = 5
>>> d["a"]
5
>>>
Michele
More information about the Python-list
mailing list