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