class M(type):
def __str__(self):
return "gege"
aa = "ccf"
cc = "ccc" class TM:
cc = "ddd"
__metaclass__ = M
print (TM.__class__)#<class '__main__.M'>
a = TM()
print (TM.__metaclass__.cc)#ccc
print (TM.aa)#ccf
print (TM.cc)#ddd
#print (a.aa) #error

class属性类似于以上例子中的__metaclass__

实例.__class__等价于实例的所属类

回过头来补充说明。

继承type类的类就是元类,而我们新创建一个类,__metaclass__可以指定这个类是哪个元类的对象,如果不指定,则默认是type类的对象

更新:

类与类的类,跟实例与类,这两个对应还是有点区别的。

就比如上面那个例子,类TM的类M具备aa属性,我们用dir(TM)是看不到aa属性的,用hasattr(TM,"aa"),返回的也是false,但这不妨碍TM可以调用aa属性,只不过,TM的实例不能调用aa属性。

而一般的实例与类,只要类中具备的属性,用dir(实例)查看都能看到

最新文章

  1. 高级SQL运用
  2. git配置
  3. linux下安装编译php的curl扩展
  4. java_easyui体系之DataGrid(1)[转]
  5. iOS 实现简单的Http 服务
  6. 011OK6410开发板介绍
  7. spring getbean 方法分析
  8. 修改UISearchBar placeholder textColor
  9. UESTC_最少花费 2015 UESTC Training for Dynamic Programming&lt;Problem D&gt;
  10. Java他们其中一个IO(一)
  11. URL中包含url参数,(文件路径作为参数)
  12. Java项目下的classpath路径包括哪里
  13. 无法修改linux/ubuntu密码(Authentication token manipulation error )问题解决过程【转】
  14. .NET Core 2.0应用程序大小减少50%
  15. hsdfz -- 6.17 -- day2
  16. C/C++杂记:虚函数的实现的基本原理
  17. Scrapy框架——CrawlSpider类爬虫案例
  18. 跟我一起学习ASP.NET 4.5 MVC4.0(二)
  19. go-004-数据结构
  20. [SDOI2016]数字配对

热门文章

  1. JSP JSTL知识结构图
  2. Leetcode——37.解数独 [##]
  3. 共享服务Samba,实现liunx与Windows文件共享
  4. tp5+layui 实现上传大文件
  5. MySQL 字符串截取函数
  6. redis集群的测试
  7. [转帖]Mysql 最简单的参数调优配置
  8. 新版vue-cli如何使用json-server来mork
  9. ELK之消息队列选择redis_kafka_rabbitmq
  10. js保留两位小数方法总结