类或实例是否在元类中?

2024-04-20 06:58:47 发布

您现在位置:Python中文网/ 问答频道 /正文

from time import ctime
import inspect

class  MetaC(type):
  def  __init__(cls,name,bases,attrd):
    print   isinstance(cls,MetaC) 
    print   inspect.isclass(cls)
    super(MetaC,cls).__init__(name,bases,attrd)
    print "careated %s" %ctime()

class  Foo(object):
  __metaclass__=MetaC
  def  __init__(self):
    print "i am here "

我得到这个输出:

True  
True  
careated Fri Feb  8 12:33:32 2013  

MetaC__init__方法中的参数(cls

clsclass还是instance?你知道吗


Tags: namefromimporttrueinitdefclasscls
1条回答
网友
1楼 · 发布于 2024-04-20 06:58:47

cls既是一个类,又是一个实例。一个类仅仅是一个元类的实例。你知道吗

>>> class MetaC(type):
...   def  __init__(cls, name, bases, attrs):
...     print 'cls: ', cls
...     print 'cls is instance of MetaC: ', isinstance(cls, MetaC)
... 
>>> class C(object):
...   __metaclass__ = MetaC
... 
cls: <class '__main__.C'>
cls is instance of MetaC: True

相关问题 更多 >