You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python通用方案:生成类/对象结构的布尔镜像表示

Python 对象结构布尔镜像生成方案

核心需求

  • 生成与原Python类/对象结构完全映射的布尔结构
  • 原生单值类型(int、float、str、bool)替换为布尔值,初始设为True且支持后续修改
  • 容器/可迭代对象(列表、字典、嵌套对象等)需递归扫描处理
  • 最终结果需为可与原对象直接映射的字典或类实例,作为依赖追踪账本,记录其他函数对原对象成员的依赖情况

实现思路

采用递归遍历逻辑,模仿对象序列化流程:

  • 对每个成员判断类型:
    • 原生单值类型直接返回True
    • 自定义类实例遍历其__dict__属性(过滤私有属性)生成对应结构
    • 容器类型(列表、元组、字典等)递归处理内部元素
  • 优先输出字典格式,兼具易修改、易映射的特性

通用实现代码

def create_boolean_mirror(obj):
    # 处理原生单值类型
    if isinstance(obj, (int, float, str, bool)):
        return True
    # 处理列表、元组等序列类型
    elif isinstance(obj, (list, tuple)):
        mirror_type = type(obj)
        return mirror_type(create_boolean_mirror(item) for item in obj)
    # 处理字典类型
    elif isinstance(obj, dict):
        return {key: create_boolean_mirror(value) for key, value in obj.items()}
    # 处理自定义类实例
    elif hasattr(obj, '__dict__'):
        mirror_dict = {}
        for attr_name, attr_value in obj.__dict__.items():
            # 跳过以_开头的私有属性,可按需调整
            if not attr_name.startswith('_'):
                mirror_dict[attr_name] = create_boolean_mirror(attr_value)
        return mirror_dict
    # 其他未覆盖类型默认返回True,可按需扩展
    else:
        return True

使用示例

# 定义示例业务类
class User:
    def __init__(self):
        self.name = "Alice"
        self.age = 30
        self.is_active = True
        self.contact = {"email": "alice@example.com", "phone": 123456}
        self.friends = [{"name": "Bob", "age": 28}, {"name": "Charlie", "age": 32}]

# 创建原对象实例
user = User()
# 生成布尔镜像
user_mirror = create_boolean_mirror(user)

# 输出镜像结构
print(user_mirror)

输出结果

{
    'name': True,
    'age': True,
    'is_active': True,
    'contact': {'email': True, 'phone': True},
    'friends': [{'name': True, 'age': True}, {'name': True, 'age': True}]
}

补充建议

  • 若需生成类实例而非字典,可基于原类动态创建镜像类,或实例化原类后替换成员值为布尔结构
  • 可调整私有属性过滤规则,根据业务需求决定是否纳入镜像
  • 支持自定义类型扩展,比如针对datetime、set等类型添加专属处理逻辑
  • 依赖追踪场景下,可在函数调用前后修改镜像中对应成员的布尔值,标记成员是否被访问或修改

内容的提问来源于stack exchange,提问作者Stefan Karlsson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 07:12:26