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?

--
It's me



"Nicolas Fleury" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> It's me wrote:
> >>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).
>
> 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

Reply via email to