[Python-ideas] Decorators for variables
Eric Fahlgren
ericfahlgren at gmail.com
Sun Apr 3 10:14:32 EDT 2016
More information about the Python-ideas mailing list
Sun Apr 3 10:14:32 EDT 2016
- Previous message (by thread): [Python-ideas] Decorators for variables
- Next message (by thread): [Python-ideas] Decorators for variables
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Saturday, April 02, 2016 23:33, Chris Angelico wrote: > On Sun, Apr 3, 2016 at 4:05 PM, Matthias welp <boekewurm at gmail.com> wrote: > > currently changes behaviour depending on what kind of scope it is > > located in (class description, any other scope), while decorators (for > > functions at > > least) work in every scope I can think of. I think that is strange, > > and that it should just be the same everywhere. > > Can you explain - or, preferably, demonstrate - the difference you're talking about here? I can sort of see it, like this? class C(): def __init__(self): self.x = 99 @property def f(self): return self.x x = 101 @property def f(namespace): return namespace.x c = C() print(c.x) 99 print(c.f) 99 print(C.f.fget(c)) 99 print(x) 101 Here's the inconsistency, should implicitly bind to a "global namespace object". print(f) <property object at 0x00000000023FB6D8> In other words, something like this: class GNS: def __getattr__(self, name): prop = globals().get(name) if isinstance(prop, property): return prop.fget(self) return prop global_namespace = GNS() print(x is global_namespace.x, "should be 'True'") True should be 'True' print(global_namespace.f) 101
- Previous message (by thread): [Python-ideas] Decorators for variables
- Next message (by thread): [Python-ideas] Decorators for variables
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list