diff --git a/Lib/symtable.py b/Lib/symtable.py index a8112ff9423..44d70a35fda 100644 --- a/Lib/symtable.py +++ b/Lib/symtable.py @@ -190,6 +190,9 @@ class Symbol(object): def is_global(self): return bool(self.__scope in (GLOBAL_IMPLICIT, GLOBAL_EXPLICIT)) + def is_declared_global(self): + return bool(self.__scope == GLOBAL_EXPLICIT) + def is_local(self): return bool(self.__flags & DEF_BOUND) diff --git a/Lib/test/test_symtable.py b/Lib/test/test_symtable.py index cdb216b0bab..792d9c3343e 100644 --- a/Lib/test/test_symtable.py +++ b/Lib/test/test_symtable.py @@ -98,7 +98,9 @@ class SymtableTest(unittest.TestCase): def test_globals(self): self.assertTrue(self.spam.lookup("glob").is_global()) + self.assertFalse(self.spam.lookup("glob").is_declared_global()) self.assertTrue(self.spam.lookup("bar").is_global()) + self.assertTrue(self.spam.lookup("bar").is_declared_global()) self.assertFalse(self.internal.lookup("x").is_global()) self.assertFalse(self.Mine.lookup("instance_var").is_global())