You need to enable JavaScript to run this app. Python中如何从字符串数组初始化类对象的属性?
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何从字符串数组初始化类对象的属性?

解决方案

核心实现思路如下:

  1. 封装独立的Table类,实现你需要的insert、mean等表操作方法
  2. 在Database类的__init__初始化方法中接收表名列表参数,遍历后为实例动态绑定对应名称的Table实例

完整实现代码:

class Table:
    def __init__(self, table_name):
        self.table_name = table_name
        self.storage = {}  # 存储表数据的内置容器

    def insert(self, data: dict):
        # 自定义插入逻辑
        self.storage.update(data)
    
    def mean(self):
        # 自定义求均值逻辑
        if not self.storage:
            return 0.0
        values = list(self.storage.values())
        return sum(values) / len(values)

class Database:
    def __init__(self, tables: list[str]):
        # 遍历传入的表名列表,动态绑定属性
        for table_name in tables:
            setattr(self, table_name, Table(table_name))

测试效果和你要求的用法完全一致:

data = Database(tables=['distance', 'speed'])
# 调用对应方法
data.distance.insert({1: 25, 2: 55})
print(data.distance.mean()) # 输出 40.0
data.speed.insert({1: 30, 2: 60, 3: 90})
print(data.speed.mean()) # 输出 60.0

你之前的方案不符合需求是因为你直接把属性值绑定为了字符串本身,不具备insert、mean等方法调用能力,替换为具备对应业务能力的类实例即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 07:24:04