# -*- coding: utf-8 -*-
# 经典类或者旧试类
class A:
pass
a = A()
# 新式类
class B(object):
pass
b = 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方法。
python class和class(object)用法区别-(转)
最新推荐文章于 2024-09-22 15:36:57 发布