建议这几篇文章都看看
Python中type和object的关系
Python中一切皆对象
Python list的乘法复制
Python list+=和list=list+的区别
a = 1
本质上是a引用1
一个对象可以被多个引用引用
一个引用只可以引用一个对象
函数也是一个对象,真正的函数对象是那个函数体,而函数名只不过是函数体的一个引用。
上面的函数名--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
网友评论