www.zhblog.net

Python 元类调用时机

元类在类定义(metaclass=T)时被调用,仅一次。


>>> instance = []
>>> class T(type):
	def __new__(cls, name, base, attrs):
		new_cls = type.__new__(cls, name, base, attrs)
		instance.append(new_cls)
		print(len(instance))
		return new_cls

	
>>> class TT(metaclass=T):
	pass

1
>>> tt1 = TT()
>>> instance
[<class '__main__.TT'>]
>>> tt2 = TT()
>>> instance
[<class '__main__.TT'>]
>>> 
>>> class TTT(metaclass=T):
	pass

2
>>> ttt = TTT()
>>> instance
[<class '__main__.TT'>, <class '__main__.TTT'>]
>>> 


 

 

 

展开阅读全文

评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 心情