python class和class(object)用法区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python class和class(object)用法区别相关的知识,希望对你有一定的参考价值。

# -*- 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方法。

from:https://my.oschina.net/shyl/blog/692930

以上是关于python class和class(object)用法区别的主要内容,如果未能解决你的问题,请参考以下文章

hausaufgabe--python 39 -- objects and class

Python - Class and Objects

Python class and object

python的class(类)中的object是什么意思?

带你完全理解Python中的metaclass,type,class之间的恩怨情仇...

python-基础-isinstance(p_object, class_or_type_or_tuple)