基于上下文的对象初始化python

2024-09-28 22:07:39 发布

您现在位置:Python中文网/ 问答频道 /正文

谢谢你抽出时间。希望你在这个奇怪的时刻一切顺利

我正在处理一个表示操作列表的类。这些操作接收参数(一些是可选的,一些是必需的)并输出一些值。所有参数都是关键字参数,每个操作都会输出一个包含结果的字典

认为操作1不带任何参数,并输出一个名为“ARG1”的结果。 考虑操作2采用一个名为“ARG1”的强制参数,并输出“ARG2”。p>

如果缺少强制参数,操作将抛出错误

o = Operation2() # raises error because arg1 is not given

在我的类列表中,操作输出作为下一个操作的输入,这意味着以下操作不会引起任何错误:

l = List([Operation1(), Operation2()])

我怎样才能做到这一点?由于验证发生在操作init中,因此将抛出一个错误。我假装以不同的方式初始化对象,这取决于它是在列表内还是在列表外

我知道如何使用类方法和标志实现这一点,但这将改变我上面显示的简单一致的语法。这不是这个项目的选择。我完全控制列表的其余执行和所有操作

再次感谢你抽出时间来帮助我,保持安全


Tags: 列表参数字典is错误时间error关键字