On Thu, Mar 31, 2016 at 7:11 PM, Justin C. Walker <jus...@mac.com> wrote:
> > On Mar 31, 2016, at 15:37 , Vincent Delecroix wrote: > > > On 31/03/16 18:22, Johannes wrote: > >> On 31.03.2016 23:08, Justin C. Walker wrote: > >>> 2. Is there a way to tell, when hasattr(X, "foo") returns True, > >>> whether "X.foo" can be called? > >> > >> X.foo and x.foo.__call__ is None > > > > !? > > > > The only way to go here is > > > > if callable(X.foo): > > print "X.foo is callable" > > Thanks for the all the responses. They help, but I'm sensing confusion > (at least on my part): > > sage: Q > Univariate Quotient Polynomial Ring in xbar over Rational Field with > modulus x^2 > > sage: hasattr(Q,"is_integral_domain") > True > > sage: Q.is_integral_domain > <built-in method is_integral_domain of > PolynomialQuotientRing_generic_with_category object at 0x19c8dcec0> > > sage: callable(Q.is_integral_domain) > True > > sage: Q.is_integral_domain() > --------------------------------------------------------------------------- > NotImplementedError Traceback (most recent call last) > <ipython-input-48-73145f43c3d0> in <module>() > ----> 1 Q.is_integral_domain() > NotImplementedError: > > Help and corrections much appreciated, as always. > Just because a method is callable doesn't mean that it can't raise exceptions, including NotImplementedErrors. There's no reasonable way to tell if a method will raise an exception or not without calling it. David > > Thanks! > > -- > Justin C. Walker > Director > Institute for the Enhancement of the Director's Income > -- > Fame is fleeting, but obscurity > just drags on and on. F&E > > > > -- > You received this message because you are subscribed to the Google Groups > "sage-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sage-devel+unsubscr...@googlegroups.com. > To post to this group, send email to sage-devel@googlegroups.com. > Visit this group at https://groups.google.com/group/sage-devel. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.