But that would always fail! (I just tried it).I guess another example would be an assert on the type of argument: def foo(someClass): assert inspect.isclass(someClass) # rest of code
Are you sure you haven't pass an instance instead of a class? Remember, classes are also objects in Python:
>>> import inspect >>> class A: pass ... >>> def foo(a): assert inspect.isclass(a) ... >>> foo(A) >>>
Works fine and makes sense, no? Of course, if I pass an instance instead of a class it would fail:
>>> myA = A() >>> foo(myA) Traceback (most recent call last): File "<stdin>", line 1, in ? File "<stdin>", line 1, in foo AssertionError
Maybe your question is in what situations passing a class can be useful? There's many examples and once you're used to that capability it can be powerful. One simple example could be the generation of documentation; since you usually want to doc your classes, not instances. So it would make sense to do something like:
def writeHtmlDoc(file, someClass): ...
Regards, Nicolas -- http://mail.python.org/mailman/listinfo/python-list