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

Reply via email to