[Python-ideas] Interrogate alternate namespace keyword and concept
ilya
ilya.nikokoshev at gmail.com
Fri Aug 14 11:25:53 CEST 2009
Even if for some reason you needed a statement similar to Pascal's
"with" (and no, I don't know any example where this could be useful
since you'll lose access to anything other then the class), you could
implement it with existing syntax:
class Test:
'''Class to be interrogated.'''
def __init__(self, value):
self.value = value
test = Test(10)
class getattrs(dict):
'''An auxiliary class.'''
def __init__(self, instance):
self.instance = instance
def __getitem__(self, name):
return getattr(self.instance, name)
def __setitem__(self, name, value):
return setattr(self.instance, name, value)
# interrogate test: value += 5
exec('value += 5', getattrs(test))
print(test.value)
# prints 15.
On Fri, Aug 14, 2009 at 12:11 PM, Nick Coghlan<ncoghlan at gmail.com> wrote:
> Steven D'Aprano wrote:
>> I don't think there are any problems with a Pascal-style 'with'
>> statement that couldn't be overcome, but I don't think the benefit is
>> great enough to create a new keyword for it. Can you explain in more
>> detail why this proposed feature is useful?
>
> Also, if you just want to be able to chain multiple namespaces together,
> you can do that by implementing an appropriate class with a custom
> __getattr__ method.
>
> Cheers,
> Nick.
>
> --
> Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
> ---------------------------------------------------------------
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> http://mail.python.org/mailman/listinfo/python-ideas
>
More information about the Python-ideas
mailing list