Nicolas, Thanks for the response. Please see comment below.
"Nicolas Fleury" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > > an_instance=Abc() > > > But what good is that? Of course I know Abc is a class, why would I want to > > inspect it so that it would tell me what I already know? > > Well, for no reason in that case. For the same reason you would not > call isinstance(an_instance, Abc) if you already know an_instance is an > instance of Abc. > > > def Hello(self, some_class): > > # since I don't know if the argument passed down *is* a class or not, I > > would: > > if inspect.isclass(some_class)==True: > > ... > > return > > ### > > > > But that obviously isn't what isclass is for. What should I use? > > Well, it's obviously what isclass is for;) (By the way, you would be > better not compare your conditions with True, unless it's really what > you want). > But inspect.isclass(some_class) returns a False no matter what. That's why I am confused. The only way I get isclass to return True is inspect.isclass(Abc) in my example. > I guess another example would be an assert on the type of argument: > def foo(someClass): > assert inspect.isclass(someClass) > # rest of code > But that would always fail! (I just tried it). > This way errors on types are handled at the beginning and at the same > time the code it documenting itself. The function could also be useful > in cases where you do some C++-like overloading mechanism. Anyway, > isclass, like iscallable, are functions that are not used often, but you > still might need them. > > Regards, > Nicolas -- http://mail.python.org/mailman/listinfo/python-list