类或词典?

问题描述 投票:0回答:1

我总是被发现有类。在某些情况下,我不得不说的主要是因为自动补全系统。

这是“类结构”类的情况,因此即使您不记得它们的名称,也可以轻松地使用点语法访问成员。我还自己创建了一个“ DataContainer”类,我认为它非常易于使用。

以便您可以这样做

X = DataContainer()
X.a = 1
X.b= 4

或等效地

Y = DataContainer(a = 1,b = 4)

我知道应该有一个命名元组类,但是我发现它比我的类差。

当然您可以使用字典。Y = dict()Y ['a'] = 1等等...

和摩擦来了!

哪个选择?

有什么区别?当遇到实际问题时,当涉及更多涉及的设计解决方案时,是否有任何指南可能会有所帮助?到目前为止,我一直使用类,但是我意识到它们通常需要更多维护。原则上,DataContainer类不应作为结构。但是“嘿”,我告诉自己,python有字典...也许就是这样...

以失去自动完成的代价。

示例

我有一个名为Investigator的类,它能够执行Task1,Task2,Task3。每个任务都有一组不同的参数:Task1-> a,b;任务2-> a,c;任务3-> d。您将用什么来存储它们?

Settings.a
Settings.b
Settings.c
etc

    Settings['a']
    Settings['b']
    Settings['c']

    or what else?

    SettingsTask1.a

    Settings.Task1.a
    Settings['Task1']['a']

或其他?

谢谢您的贡献!

麦克

python class dictionary namedtuple
1个回答
0
投票

字典只是命名属性的集合。如果要“规范化”对象并添加行为,请使用类。如果您希望系统更轻松地扩展并确保这些对象具有相同的属性,则可以使用类。请注意,Python现在有可用的数据类,它们听起来很适合您的用例:https://docs.python.org/3.7/library/dataclasses.html

© www.soinside.com 2019 - 2024. All rights reserved.