On Mon, 23 Nov 2009 22:27:24 -0800, alex23 wrote: > As a very rough example: > > def g(x): > try: > assert isinstance(x, int) > except AssertionError: > raise TypeError, "excepted int, got %s" % type(x) > # ... function code goes here > > def f(x): > try: > g(x) > except TypeError: > # handle the problem here > # ... function code goes here
I know you say this is a "very rough" example, but, generally you don't want to do this kind of "type checking" with isinstance. Rather, it's better to just simply manipulate x as if it were an integer and rely on Python to check to see if x supports the operations you're trying to do with it. For instance, say we have def g(x): return x * x def f(x): return g(x) + 2 If you try to pass any value to either of these functions that doesn't support the required operations, Python itself will complain with a TypeError. Since the interpreter needs to do this check *anyway*, there's no real sense in repeating it manually by checking isinstance. -- http://mail.python.org/mailman/listinfo/python-list