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/2007-February/071051.html below:

[Python-Dev] Summary of "dynamic attribute access" discussion

[Python-Dev] Summary of "dynamic attribute access" discussionRon Adam rrr at ronadam.com
Tue Feb 13 19:11:18 CET 2007
Georg Brandl wrote:
> Martin v. Löwis schrieb:
>> Anthony Baxter schrieb:
>>>> and the "wrapper class" idea of Nick Coghlan:
>>>>    attrview(obj)[foo]
>>> This also appeals - partly because it's not magic syntax <wink>
>> I also like this. I would like to spell it attrs, and
>> I think its specification is
>>
>> class attrs:
>>    def __init__(self, obj):
>>      self.obj = obj
>>    def __getitem__(self, name):
>>      return getattr(self.obj, name)
>>    def __setitem__(self, name, value):
>>      return setattr(self.obj, name, value)
>>    def __delitem__(self, name):
>>      return delattr(self, name)
>>    def __contains__(self, name):
>>      return hasattr(self, name)
>>
>> It's so easy people can include in their code for backwards
>> compatibility; in Python 2.6, it could be a highly-efficient
>> builtin (you still pay for the lookup of the name 'attrs',
>> of course).
> 
> I fear people will confuse vars() and attrs() then.
> 
> Georg

Would it be possible for attrview to be a property?


Something like...  (Probably needs more than this to handle all cases.)

     class obj(object):
         def _attrview(self):
             return self.__dict__
         attr = property(_attrview)


If it was this simple we just do obj.__dict__[foo] in the first place. Right? 
I'm overlooking something obvious I think, but the spelling is nice.

     obj[foo]             -> access content
     obj.foo              -> access attribute directly
     obj.attr[foo]        -> access attribute dynamically


Ron


More information about the Python-Dev mailing list

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