本文摘自php中文网,作者巴扎黑,侵删。
1、用元类验证子类
每当我们定义新类的时候,元类就会运行雅正代码,以确保这个新类符合规定的规范。
Python系统把子类的class语句处理完毕,就会调用元类的 __new__
方法。元类可以通过 __new__
方法,获取子类、孙子类的名称,父亲及属性。
这样使得我们不需要将验证代码放在本类 __init__
方法中,等到构建对象再验证。
下例中,定义一个边数小于3的子类,class语句一结束,元类的验证代码就会拒绝这个class。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
2、用元类注册子类
每次从基类中继承子类时,基类的元类都可以自动运行注册代码。
这在需要反向查找 ‘reverse lookup’ 时很有用,使得在简单标识符和对应的类之间,建立映射关系。
依然利用的是class语句执行完,自动调用元类的 __new__
方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
|
3、用元类注解类的属性
使用元类像是在 class 语句上放置了挂钩,class语句处理完毕,挂钩就会立刻触发。
下列中借助元类设置了 Filed.name
和 Filed.name
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
元类总结就到这里,自己也没有完全理解清楚。
希望对此有深刻理解的pythoner留言。
代码来自:
以上就是详细讲解Python中的元类及其用法的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python读取文本中数据并转化为dataframe的实例_Python
更多相关阅读请进入《Python》频道 >>

Python编程 从入门到实践 第2版
python入门书籍,非常畅销,超高好评,python官方公认好书。