使用元类定义对象实例属性

时间:2019-11-11 19:47:18

标签: python python-3.x metaprogramming

我正在尝试使用元类来生成一个此类的对象具有实例属性的类。这是期望的结果:

class Foo:
    def __init__(self):
        self._var_a = None
        self._var_b = None

但是;我不知道如何。这是我所拥有的:

# Emulate inbound
_regs = dict(Foo=dict(_var_a=None, _var_b=None))

class MyMeta(type):
    def __new__(cls, name, bases, dct, **kwargs):
        return super(MyMeta, cls).__new__(cls, name, bases, dct)

for key, val in _regs.items():
    globals()[key] = MyMeta(key, (), val)

但是val会产生类属性,因此Foo的每个实例都会使用这些属性,而不是我试图获得所需结果的结果。

0 个答案:

没有答案