Martin v. Löwis wrote:
[...]it's me wrote:
Okay, Nick, I didn't know you can pass a "Class" rather then an instance. I
have to chew on what your example does.
But no, I want to pass an instance of a Class. But how do I know that the
calling routine *did* pass me a class - pardon me: an instance of a Class?
The real purpose of why you have *inspect*.isclass is for inspecting. For example, assume I wanted to display the contents of module httplib. I would need to find out what the things in httplib are, and I do this with
>>> for x in dir(httplib): .... print x, .... x = getattr(httplib, x) .... if inspect.isclass(x):print "class" .... elif inspect.isfunction(x):print "function" .... elif inspect.ismodule(x):print "module" .... else: print "something else" ....
This technique is often called "introspection", and involves having programs indulge in the time-honored practice of contemplating their own navels. The ability to introspect is one side of a major dichotomy in programming languages. A C program has no real ability to introspect, but Python and SmallTalk (and Java) programs do.
But it isn't really a novice topic, and many programmers spend entire careers quite happily without using introspection.
regards Steve -- Steve Holden http://www.holdenweb.com/ Python Web Programming http://pydish.holdenweb.com/ Holden Web LLC +1 703 861 4237 +1 800 494 3119 -- http://mail.python.org/mailman/listinfo/python-list