【问题标题】:Is there a way to instantiate objects from a dictionary in python with input parameters?有没有办法用输入参数从python中的字典中实例化对象?
【发布时间】:2018-01-13 17:43:21
【问题描述】:

假设我有一些课:

class Object1:
   def __init__(self, input=None):
       pass

class Object2:
   def __init__(self, input=None):
       pass

我大概可以这样定义一个字典:

objDict = {"a" : Object1(), "b" : Object2()}

这将实例化具有 None 输入的对象。 有没有办法可以将字典用作模板,以便我可以传入参数?像这样:

firstObj = objDict["a"]("foo")

如果可以,这是最好的方法吗?

【问题讨论】:

  • 到目前为止你尝试过什么?您还可以详细说明您的目标吗?我不确定我是否完全理解。给出一些输入和输出。
  • ... the best way of doing it? - 这真的取决于你想要实现什么,你想要解决什么问题,你打算如何使用它。你没有在你的问题中解释任何这些。

标签: python templates dictionary


【解决方案1】:

您在制作字典时正在实例化该类,这不是您想要的。只需将类作为值:

class_dict = {"a": Object1, "b": Object2}
first_obj = class_dict["a"]("foo")

【讨论】:

    猜你喜欢
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多