我有一个接受的关键字参数元类:
class M(type):
def __new__(cls, *args, **kwargs):
print(*kwargs.items())
super().__new__(cls, *args)
它按预期工作:
class A(metaclass=M, test='X'): pass
结果中的对象A
和打印输出
('test', 'X')
我想提出的一个副本A
使用类似这样 :
def copy_class(cls, name=None):
if name is None:
name = cls.__name__
return type(cls)(name, cls.__bases__, dict(cls.__dict__))
A_copy = copy_class(A, 'A_copy')
但是,关键字不存在。 这尤其是一个问题,当type(cls)
需要额外的参数或以其它方式产生不同的副作用时它们不存在。
我知道我可以有M
藏匿关键字类对象的地方,但因为那时我的复制方法是很类依赖,这不是一个很好的解决方案。
有没有取回一类是在用Python创建的关键字,一个内置的方式吗?