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

如何批量创建Python类实例并自动传入参数?

批量创建类实例的解决方案

你可以通过批量收集输入+按组拆分的方式自动创建实例,不用手动写重复代码,下面是两种实用的实现方式:

方式一:固定创建指定数量的实例

如果已经确定要创建的实例个数(比如你的例子里是3个),可以先一次性收集对应数量的输入,再按每3个参数一组循环创建实例:

class A:
    def __init__(self, a, b, c):
        self.a = a
        self.b = b
        self.c = c

# 设置要创建的实例数量
instance_num = 3
# 收集所有需要的输入(每个实例3个参数,总共instance_num*3个输入)
all_inputs = [input().strip() for _ in range(instance_num * 3)]

# 循环创建实例并存储到列表中
instances = []
for idx in range(instance_num):
    # 每次截取3个输入作为当前实例的参数
    start = idx * 3
    end = start + 3
    current_args = all_inputs[start:end]
    instances.append(A(*current_args))

# 后续可以通过索引访问实例,比如instances[0]对应原来的ins1,instances[1]对应ins2

方式二:动态读取输入直到结束

如果不确定要创建多少个实例,想让程序读取所有输入直到用户终止(Windows按Ctrl+Z,Linux/macOS按Ctrl+D),可以用sys.stdin读取所有输入行,再按3个一组拆分:

import sys

class A:
    def __init__(self, a, b, c):
        self.a = a
        self.b = b
        self.c = c

# 读取所有非空的输入行
all_inputs = [line.strip() for line in sys.stdin if line.strip()]

# 检查输入数量是否是3的倍数,避免参数不完整
if len(all_inputs) % 3 != 0:
    raise ValueError("输入的参数总数必须是3的倍数,每个实例需要3个参数")

# 用列表推导式批量创建实例
instances = [A(*all_inputs[i:i+3]) for i in range(0, len(all_inputs), 3)]

关键说明

之前用循环没成功,大概率是没处理好参数分组和参数解包:

  • 用all_inputs[i:i+3]可以每次截取3个输入作为一组参数
  • 传入类的时候用*current_args把列表里的元素拆成单个参数,对应A(a,b,c)的调用方式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 10:43:19