## 允许加载的类型,注意,这里是严重依赖python版本的,下面列出的是py2.5情况
_ALLOW_TYPES = [
types.BooleanType, ## 布尔值
types.StringType, types.UnicodeType, ## 字符
types.IntType, types.LongType, ## 整数
types.FloatType, ## 浮点数
types.ListType, types.TupleType, ## 列表 无set!!
types.DictType, ## 哈希
types.FunctionType, types.LambdaType, ## 函数值
types.ComplexType, ## 可以考虑关闭
types.ClassType, ## 可以考虑关闭
]
def _install(env, cover=True):
"""加载所有值到指定的环境里,条件是类型在_ALLOW_TYPES里并且不是_开头的"""
assert type(env) == types.DictType, 'env should be dict type'
to_loads = [(k,v) for (k,v) in globals().items() if type(v) in
_ALLOW_TYPES and not k.startswith('_')]
to_loads = to_loads if cover else [(k,v) for k,v in to_loads if k not in env]
env.update(dict(to_loads))