python class和class(object)用法区别-(转)

来源:互联网 发布:大乐透后区杀号计算法 编辑:程序博客网 时间:2024/06/15 21:39
# -*- coding: utf-8 -*-# 经典类或者旧试类class A:    passa = A()# 新式类class B(object):    passb = B()# python2不支持# print(A.__class__)print(a.__class__)print(type(A))print(type(a))# python2# __main__.A# <type 'classobj'># <type 'instance'># python3# <class 'type'># <class '__main__.A'># <class 'type'># <class '__main__.A'>print(B.__class__)print(b.__class__)print(type(B))print(type(b))# python2# <type 'type'># <class '__main__.B'># <type 'type'># <class '__main__.B'># python3# <class 'type'># <class '__main__.B'># <class 'type'># <class '__main__.B'># 旧式类的实现不够好,类是类,实例是实例,类的类型是classobj,实例的类型是instance,两者的联系只在于__class__,# 这和内置对象是不同的,int对象的类型就是int,同时int()返回的也是int类型的对象,内置对象和自定义对象不同就对代码统一实现带来很大困难。## 新式类## 1. 所有类的类型都是type# 2. 所有类调用的结果都是构造,返回这个类的实例# 3. 所有类都是object的子类# 4. 新式类不仅可以用旧类调用父类的方法,也可以用super方法。