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

  • 相关阅读:
    hdu 1754
    hdu 1166
    poj 1193
    如何由XSD自动生成XML和实体类
    WinForm(C#)CheckedlistBox绑定数据,并获得选中的值(ValueMember)和显示文本(DisplayMember)
    C#读写共享文件夹
    去除TFS版本控制信息
    SQL 触发器
    C#中操作WMI的类库-实现远程登录共享
    VS 制作安装包小窥
  • 原文地址:https://www.cnblogs.com/liulipeng/p/7069004.html
Copyright © 2011-2022 走看看