You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
543 B
36 lines
543 B
# test the __globals__ attribute of a function
|
|
|
|
|
|
def foo():
|
|
pass
|
|
|
|
|
|
if not hasattr(foo, "__globals__"):
|
|
print("SKIP")
|
|
raise SystemExit
|
|
|
|
print(type(foo.__globals__))
|
|
print(foo.__globals__ is globals())
|
|
|
|
foo.__globals__["bar"] = 123
|
|
print(bar)
|
|
|
|
try:
|
|
foo.__globals__ = None
|
|
except AttributeError:
|
|
print("AttributeError")
|
|
|
|
# test closures have the __globals__ attribute
|
|
|
|
|
|
def outer():
|
|
x = 1
|
|
|
|
def inner():
|
|
return x
|
|
|
|
return inner
|
|
|
|
|
|
print(outer.__globals__ is globals())
|
|
print(outer().__globals__ is globals())
|
|
|