python的bunch pYthon
更新时间:2023-10-09什么是Bunch for Python
Bunch 是一种类字典的 Python 对象,它支持属性访问,属性和键之间是等同的。也就是说,我们可以通过类似于对象属性点操作的方式来访问和设置字典的键值对。
Bunch 通常用于将多个配置选项进行积累,可以在整个程序中共享这些选项,任何地方都可以轻松地访问这些选项。
from bunch import Bunch config = Bunch(user='admin', password='pwd123', port=8080) print(config.user) # admin
在上面的例子中,我们创建了一个名为 config 的 Bunch 对象,其中有三个键值对,使用点操作访问 user 键的值 'admin'。
Bunch 的一些常见用途
1. Bunch 可以作为配置对象,提供更好的多次使用的属性调用方式。
# 创建Bunch对象 config = Bunch(user='admin', password='pwd123', port=8080) # 设置多个配置选项 config.host = '127.0.0.1' config.dbname = 'testdb' # 使用配置选项 print(config.host) # 127.0.0.1
2. Bunch 作为命名空间。
# 使用Bunch命名空间 namespace = Bunch({ "filename": "example.txt", "content": "hello world", "attributes": { "is_readable": True, "is_writable": False } }) # 获取Bunch命名空间的内容 print(namespace.filename) print(namespace.attributes.is_writable)
3. Bunch 用于处理 JSON 数据。
import json json_data = '{"username": "admin", "password": "pwd123"}' json_obj = json.loads(json_data) # 从json数据生成Bunch对象 config = Bunch.fromDict(json_obj) # 通过属性访问使用配置选项 print(config.username) # admin
Bunch 的特性和示例
1. 能像普通对象一样使用;
config = Bunch() config.username = "admin" config.password = "pwd123" print(config.username) # admin
2. 可以从字典创建Bunch对象;
settings = {"username": "admin", "password": "pwd123"} config = Bunch.fromDict(settings) print(config.username) # admin
3. 可以将Bunch对象转换为字典。
config = Bunch(username="admin", password="pwd123") dict_config = config.toDict() print(dict_config) # {'username': 'admin', 'password': 'pwd123'}
4. 支持使用get获取键值对。
config = Bunch(username="admin", password="pwd123") print(config.get('username', 'default_value')) # admin print(config.get('not_exists', 'default_value')) # default_value
Bunch 是一个非常有用的工具,可以更方便、更快捷地处理 Python 的字典,又具有对象的特性,使得程序的设计和编写更加容易。