【发布时间】:2019-11-10 12:23:24
【问题描述】:
我想询问以下代码片段:
class Meta(type):
def __call__(self, *args):
obj = super().__call__(*args)
print('Meta specific __call__ actions')
return obj
class Spam(metaclass=Meta):
def __init__(self, *args):
print('Spam.__init__(%r)' % args)
super().__call__ (super() 在这里表示“类型”?)如何知道它应该 创建垃圾邮件类的实例? __call__ 没有参数 会有所帮助的。
Spam 是 Meta 的一个实例,因此 Spam() 将调用 元.__call__。我的推理到此为止。 Spam('foo') 将创建一个 垃圾邮件的实例。请解释如何在 Meta.__call__ 方法中 获取信息。
【问题讨论】:
标签: python-3.x metaclass