Asserting object class

Michael Hudson mwh21 at cam.ac.uk
Thu Jun 10 06:10:19 EDT 1999


Adi <adi at i-data.com> writes:

> In a method, I'd like to assert that a parameter is an object which is
> of a specific class or has this class as it's base class.
> 
> I can test on the __class__ and its __bases__ attributes, but its clumsy
> and I'm wondering if there is an easier notation, like:
> 
> def method(self, p)
>     assert class(p) == class(self)
> 
> This is comparable to - in a strongly typed language - specifying a
> required base class as the type of the parameter.

I think that this will do what you want:

def method(self,p):
    assert isinstance(p,self.__class__)

the following also does the same:

def method(self,p):
    assert issubclass(p.__class__,self.__class__)

HTH
Michael




More information about the Python-list mailing list