python类与对象之type和object
都说python中一切皆对象,我在学python时,总有一些小疑惑,不搞清简直如鲠在喉。
怎么理解 a = 1 ?
我总结了一下:
a是一个变量名为a的变量,指向计算机中的一片内存,内存中保存的值是1。那1是什么呢?
1是int的一个实例化对象,int是1的类型。那int是什么呢?
int是type的一个实例化对象,而type是int的类型。那type是什么呢?
type的类型还是type,继承自基类object,是object的一个子类。那object是什么呢?
object是所有类的基类。由于一切皆对象的真理存在,object又是type的一个实例化对象,type是object的类型。
这就有点呵呵了。。。
type是object的子类,而object却是type的实例。从而不难理解type的类型还是type,因为object的类型是type。
其实,type是python的元类,type元类创建了所有的类,包括它自己。
那type具体是怎么创建其他类的呢?
type()函数根据传入参数的不同,有不同的功能。
给它传入个类名,元组父类,字典属性和方法,它就能创建一个类了。
既然python中一切皆对象,那么函数呢?
在现在的python中,类型和类其实是一个东西了。
既然函数test是function类型的,那么function就是个类,test是function类的实例化对象。
如果真是如此,那type(function)的结果应该是type。
实际情况是,function根本就没定义。这就奇怪了呀!望知之者告知。
未完待续。。。