专栏首页python3第一篇随笔

第一篇随笔

 1 #元类
 2 class myType(type):
 3     def __init__(self, obj_name, base_tuple, attr_dict):
 4         print(self, obj_name, base_tuple, attr_dict, sep='\n')
 5 
 6     def __call__(self, *args, **kwargs):
 7         print(self, args, kwargs, sep='\n')
 8         #<class '__main__.Foo'>
 9         #('oliver',)
10         #{}
11         obj = object.__new__(self, *args, **kwargs)
12         self.__init__(obj, *args, **kwargs)
13         #调用self (在这里是Foo)的init方法  不是调用myType的init方法
14         return obj
15 
16     def __new__(cls, *args, **kwargs):#生成一个类
17         print(cls, args, kwargs, sep='\n')
18         obj = type.__new__(cls, *args, **kwargs)
19         #print(obj)
20         return obj
21 
22 
23 class Foo(object, metaclass=myType): #元类默认为type 即Foo = type(Foo, 'Foo', (object,), {attr1:a,attr2:b})
24                     #用元类创建时 调用的是myType的init方法
25     def __init__(self, name):
26         self.name = name
27 
28 print(Foo)
29 #bar = Foo('oliver')
30 #print(bar, bar.__dict__, sep='\n')

元类的用法

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python中线程Timeout的使用

    Python中关于Timeout有另一种用起来更简便的方法,即使用装饰器。这种方式是使用sys模块的settrace等方法重构了python的threadin...

    py3study
  • Python的condition和阻塞队

    py3study
  • Python学习笔记(1)

    py3study
  • 2020-06-12

    达达前端
  • 面向对象,二

               字段        静态字段(没一个对象都有一份),普通字段(每一个对象都不同的数据)

    Wyc
  • 【致敬周杰伦】基于TensorFlow让机器生成周董的歌词(附源码)

    ? 周杰伦 深深地 影响了我们 一代人 这句话 不足为过 前言 今日推文将介绍如何使用TensorFlow一步步来搭建一个序列建模的应用——机器创作歌词,训练...

    量化投资与机器学习微信公众号
  • 小Q-百度定位及递增递减的Label数字未完待续,持续更新中

    GuangdongQi
  • 自适应单元格

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

    用户1451823
  • CVE-2019-13382:SNAGIT中的本地权限提升

    版本:Snagit 2019.1.2 Build 3596 操作系统测试时间:Windows 10 1803(x64) 漏洞:SnagIt Relay Clas...

    洛米唯熊
  • Python在windows CMD中输出中文

    happy123.me

扫码关注云+社区

领取腾讯云代金券