owattr覆盖属性。
owattr的Python项目详细描述
owattr覆盖属性。
示例
config.py:
importsysimportowattrREDIS_URL="redis://localhost:6379/0"IS_DEV_ENV=Trueowattr.from_dict(sys.modules[__name__],dict(os.environ))
config
模块具有REDIS_URL
作为属性。您可能需要更改生产环境的值。在这个例子中,如果您在环境变量中定义了REDIS_URL
,那么当您加载config
模块时,它将被覆盖。如果不定义REDIS_URL
,则可以使用原始值。
当owattr读取dict时,它将dict值强制转换为原始值的类型。所以在环境变量中,一切都是str类型。在本例中,如果在环境变量中定义了IS_DEV_ENV=False
,config
的IS_DEV_ENV
具有False
作为bool类型。
布尔值的类型如下:
'false'
、'False'
和''
被转换为false'true'
和'True'
被转换为true- 其他任何事情都会引起
'ValueError'
如果您的对象有__all__
,owattr只覆盖在__all__
中写入的变量。