zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    魔数,常见魔数
    正则表达式 —— 括号与特殊字符
    串行总线 —— I2C、UART、SPI
    OpenCV-Python sift/surf特征匹配与显示
    OpenCV-Python 边缘检测
    python中zip()函数基本用法
    OpenCv-Python 图像滤波
    获取WMI硬件清单
    PowerShell查询sql server
    别名的应用(New-Alias)
  • 原文地址:https://www.cnblogs.com/liulipeng/p/7069004.html
Copyright © 2011-2022 走看看