代码如下:
#encoding=utf-8
print '中国'
#确保名字已经在给定的模块中定义
import __builtin__
def ensureDefined(name, defining_code, target=__builtin__):
if not hasattr(target,name):
d={}
exec defining_code in d
assert name in d, 'Code %r did not set name %r' % (defining_code, name)
setattr(target, name, d[name])
#通常写法
try:
set
except NameError:
from sets import Set as set
#优化后
ensureDefined('set', 'from sets import Set as set')
打印结果如下:
中国