]> granicus.if.org Git - python/commitdiff
Implement find_class() without exec statement.
authorGuido van Rossum <guido@python.org>
Fri, 14 Mar 1997 04:21:10 +0000 (04:21 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 14 Mar 1997 04:21:10 +0000 (04:21 +0000)
Lib/pickle.py

index 28f8f901d1237b9ef5d5eade95cb89db6789344a..bfe49f91295743e76c483e30f320553acd8c04ce 100644 (file)
@@ -465,14 +465,12 @@ class Unpickler:
        dispatch[CLASS] = load_class
 
        def find_class(self, module, name):
-               env = {}
                try:
-                       exec 'from %s import %s' % (module, name) in env
-               except ImportError:
+                       klass = getattr(__import__(module), name)
+               except (ImportError, AttributeError):
                        raise SystemError, \
                              "Failed to import class %s from module %s" % \
                              (name, module)
-               klass = env[name]
                if type(klass) is BuiltinFunctionType:
                        raise SystemError, \
                         "Imported object %s from module %s is not a class" % \