diff options
Diffstat (limited to 'modules/language/python/module/_python.scm')
-rw-r--r-- | modules/language/python/module/_python.scm | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/modules/language/python/module/_python.scm b/modules/language/python/module/_python.scm index 4f96611..531a6b5 100644 --- a/modules/language/python/module/_python.scm +++ b/modules/language/python/module/_python.scm @@ -127,12 +127,16 @@ #f)))) (define-method (isinstance x y) - (if (null? y) - #f - (if (pair? y) - (or (isinstance x (car y)) - (isinstance x (cdr y))) - (is-a? x y)))) + (cond + ((null? y) + #f) + ((pair? y) + (or (isinstance x (car y)) + (isinstance x (cdr y)))) + (else + (catch #t + (lambda () (is-a? x y)) + (lambda x #f))))) (define-method (isinstance (i <integer>) y) (if (issubclass y int) |