summaryrefslogtreecommitdiff
path: root/modules/language/python/module/_python.scm
diff options
context:
space:
mode:
Diffstat (limited to 'modules/language/python/module/_python.scm')
-rw-r--r--modules/language/python/module/_python.scm16
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)