美文网首页
Python:一切皆对象

Python:一切皆对象

作者: 戏之地 | 来源:发表于2016-12-05 10:07 被阅读493次

    建议这几篇文章都看看
    Python中type和object的关系
    Python中一切皆对象
    Python list的乘法复制
    Python list+=和list=list+的区别

    a = 1
    本质上是a引用1
    一个对象可以被多个引用引用
    一个引用只可以引用一个对象

    Paste_Image.png

    函数也是一个对象,真正的函数对象是那个函数体,而函数名只不过是函数体的一个引用。
    上面的函数名--f只不过是一个引用
    此时f是一个引用,而一个对象可以有多个引用,所以g也可以引用该函数
    函数这个对象也可以和其他对象一样,可以被当作参数传递
    函数是不可变对象
    在Python中,类也是一个对象
    在Python中,类是一个可以产生其他对象的对象。

    class A:
      pass
    

    上面的代码相当于

    A=CLASSOBJ("pass")

    C++和JAVA中的类都不是对象,但是Python中的是,所以Python中的类可以像其他对象一样做引用,传参

    类作为函数参数

    每一个对象都对应一个类,这个类可以用type函数来查看,如下:

    type返回类对象

    type返回的也是一个对象,也是一个类,这个类就是一个对象。

    那么这个对象是哪个类的模板呢?

    所有类对象的类

    所以类对象的类都是type类,type是一个内建类,而不是一个函数

    type是一个内建类

    既然所有的类都是一个对象,那么type这个类也是一个对象。那么这个对象的类是什么?

    types本身:

    • type本身是一个类,也是以该类为模板的对象
    • type本身是一个对象,也是该对象的模板类

    类似于int,str的类,都是对象,其类为type
    整个python的对象类型是从type类开始的

    Python3中所有的类都是new-style,
    所以类对象的type都是该类
    但是在py2中,自定义类的对象的type是instance

    python2中的自定义类的对象的type python3中的类都是new_style

    相关文章

      网友评论

          本文标题:Python:一切皆对象

          本文链接:https://www.haomeiwen.com/subject/tmekmttx.html