使用元类使类变量可作为实例变量访问
我的目标是使 ExampleList 的行为像一个包含 Example
类的类变量 a
的列表,应该可以作为实例变量进行访问,如下所示:
ex = ExampleList([1, 2, 4])
ex.a
class MetaList(type):
def __call__(cls, *args, **kwargs):
obj = list.__call__(*args, **kwargs)
return obj
class Example:
a = 5
class ExampleList(Example, metaclass=MetaList):
pass
My goal is to make ExampleList behave like a list including class variable a
of Example
class should be accessible as instance variable as following:
ex = ExampleList([1, 2, 4])
ex.a
class MetaList(type):
def __call__(cls, *args, **kwargs):
obj = list.__call__(*args, **kwargs)
return obj
class Example:
a = 5
class ExampleList(Example, metaclass=MetaList):
pass
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不确定您为什么要在这里参与元素。您可以简单地使用继承,并使用
示例
充当Mixin:I'm not sure why you want to involve a metaclass here. You can simply use inheritance, with
Example
acting as a mixin: