On Sat, Apr 18, 2015 at 9:41 PM, Ionel Cristian Mărieș <contact@ionelmc.ro> wrote:
class DynamicCallable: ... is_callable = True ... ... def __init__(self, target): ... self.target = target ... ... @property ... def __call__(self): ... if self.is_callable: ... return self.target ... else: ... raise AttributeError("Not really ...")
Before charging ahead and making the callable() function check for this, is it actually a supported concept? Is it intentional that property-getter functions can raise AttributeError to signal that the attribute does not (currently) exist? Because if that's a hack, then there's no reason to support it, and callable() is absolutely correct to say "there is a __call__ attribute on the class, ergo it's callable". ChrisA