最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Python中type的构造函数参数含义说明

来源:动视网 责编:小采 时间:2020-11-27 14:34:04
文档

Python中type的构造函数参数含义说明

Python中type的构造函数参数含义说明:测试代码如下: 代码如下: class ModelMetaClass(type): def __new__(cls,name,base,attrs): logging.info(cls is:+str(cls)) logging.info(name is:+str(name)) logging.info(base is:+str(b
推荐度:
导读Python中type的构造函数参数含义说明:测试代码如下: 代码如下: class ModelMetaClass(type): def __new__(cls,name,base,attrs): logging.info(cls is:+str(cls)) logging.info(name is:+str(name)) logging.info(base is:+str(b


测试代码如下:
代码如下:


class ModelMetaClass(type):
def __new__(cls,name,base,attrs):
logging.info("cls is:"+str(cls))
logging.info("name is:"+str(name))
logging.info("base is:"+str(base))
logging.info("attrs is:"+str(attrs))
return type.__new__(cls,name,base,attrs)
pass
pass

class Model(dict):
__metaclass__ = ModelMetaClass
def __init__(self):
pass
pass

def main():
m=Model()

if __name__ == '__main__':
main()


测试结果:
代码如下:


INFO:root:cls is:
INFO:root:name is:Model
INFO:root:base is:(,)
INFO:root:attrs is:{'__module__': '__main__', '__metaclass__': , '__init__': }


结论就显而易见了。cls是当前类的名字,即类本身。name是通过__metaclass__属性指向ModelMetaClass的类,即要实例化的类,ModelMetaClass拦截了该类的实例化。base是要实例化的类的基类。attrs是要实例化的类的属性集合。

文档

Python中type的构造函数参数含义说明

Python中type的构造函数参数含义说明:测试代码如下: 代码如下: class ModelMetaClass(type): def __new__(cls,name,base,attrs): logging.info(cls is:+str(cls)) logging.info(name is:+str(name)) logging.info(base is:+str(b
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top