python - 在运行时在 python 中创建对象

标签 python object dynamic runtime

我如何在 Python 运行时创建对象实例?

假设我有 2 个类:

class MyClassA(object):
    def __init__(self, prop):
        self.prop = prop
        self.name = "CLASS A"

    def println(self):
        print self.name


class MyClassB(object):
    def __init__(self, prop):
        self.prop = prop
        self.name = "CLASS B"

    def println(self):
        print self.name

和一个字典

{('a': MyClassA), ('b': MyClassB)}

我如何创建我的两个类之一的动态实例,具体取决于我选择“a”还是“b”。

这样的:

somefunc(str):
    if 'a': return new MyClassA
    if 'b': return new MyClassB

在调用时获得“CLASS B”:somefunc('a').println

但以更优雅和动态的方式(比如我在运行时向字典添加更多类)

最佳答案

您可以创建一个调度程序,它是一个字典,其中包含您的键映射到类。

dispatch = {
    "a": MyClassA,
    "b": MyClassB,
}

instance = dispatch[which_one]() # Notice the second pair of parens here!

关于python - 在运行时在 python 中创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5852459/

相关文章:

c# - 是否可以重载 C# 动态类型属性解析?

Javascript - 根据变量调用函数名称

python - 如何跳过超出范围的索引?

Python Scrapy,从子页面返回继续抓取

c++在具有相同名称的类中使用默认函数

vba - 确定对象类型

javascript - 以 HTML 形式复制到其他动态表的数据

python - 如何将 python 函数/类/模块对象转换为 python 代码对象

python - 在 Flask 中将表单 POST 对象转换为适合 mongodb 的表示形式

javascript - 将对象字符串转换为对象元素