Here is a simplified version of what I am dealing with:
def mydecorator(prop):
def wrapper(self_arg):
return prop(self_arg) + 'bar'
return wrapper
class Foo(object):
def __init__(self):
self.value = 'foo'
@property
@mydecorator
def foo(self):
return self.value
@property
def doesnt_have_my_decorator(self):
return 'something that requires a lot of computation'
f = Foo()
print f.foo # prints 'foobar'
Now what I would like to be able to do, is introspect f.foo
, without actually accessing its value, and check if it is decorated with @mydecorator
. Is this possible?
The use case is to be able whitelist a property as "safe" in a certain context, without actually accessing it's value in case it is "unsafe".
I have seen this great post, but it seems like that method requires foo
to have already been accessed.
I have found that I can see that it is a property
with:
f.__class__.__dict__['foo'].__class__
but I haven't been able to find any references to mydecorator
. Since it's Python, I am sure there is a way, but I haven't been able to figure it out so far...