Inserting class namespace into method scope
Steven D'Aprano
steve at REMOVE-THIS-cybersource.com.au
Sat Nov 20 09:59:53 EST 2010
I find myself having need of a class where the class scope is included in
the scope of methods in the class. A simple example from Python 3.1:
x = "outside"
class Magic:
x = "inside"
def method(self):
return x
I would like Magic().method() to return "inside" rather than "outside".
Now, I understand why this is not Python's usual behaviour, and I agree
with those reasons -- this is NOT a complaint that Python's normal
behaviour is to exclude the class namespace from the method's scope.
I also understand that the usual way of getting this would be to return
self.x or self.__class__.x from method, instead of x. Again, normally I
would do this.
But in this specific case I have reasons for wanting to avoid both of the
normal behaviours. Do not judge me, please accept that I have a good
reason for wanting this, or at least allow me to shoot myself in the foot
this way *wink*. In Python 3, is there some way to get this unusual
behaviour?
--
Steven
More information about the Python-list
mailing list