Python 3.x type.\u call\u如何知道其结果的类型?

Python 3.x type.\u call\u如何知道其结果的类型?,python-3.x,metaclass,Python 3.x,Metaclass,我想询问以下代码片段: 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.__in

我想询问以下代码片段:

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()。\uuuu调用\uuuu(super()在这里的意思是“type”)如何知道它应该是什么 创建类垃圾邮件的实例__call_u;不获取 会有帮助的


Spam是Meta的一个实例,因此Spam()将调用 Meta.\uuuuuuuuuuuuuuuuuuuuuuuuuuuuu。我的推理到此为止。垃圾邮件(“foo”)应创建一个 垃圾邮件实例。请解释如何在元中调用此方法
已获取信息。

垃圾邮件是Meta的一个实例,此实例在
self
参数中传递到
Meta.\uuu调用\uuu


super()
构造将
self
的值传递给基本方法;因此,
type.\uu-call\uuuuuuuuuuuuu
将通过其
self
参数传递
Spam

Spam是Meta的一个实例,该实例在
self
参数中传递到
Meta.\uu-call

super()
构造将
self
的值传递给基本方法;因此,
type.\uu调用
将通过其
self
参数传递
Spam