如下图是python的动态类型模型示意图
(说白了就是将变量和对象分别保存在不同的区域,其具体实现还是有其复杂性,但不妨碍我们理解)
关于模型的一些说明及结论:
1.python中变量有些类似C++中的指针,但不同的是,python将这个含义做了普适性推广,让变量不再必须指向某种具体类型。这样变量a可以指向整型3,也可以指向字符串类型“abc”或者列表“[1,2,3]”等更复杂的对象,如下的代码是完全可行的
a=3
a=“abc”
a=[1,2,3]
2.变量所引用的对象才是有类型的,但变量名称本身是无类型的
3.执行a=3的过程实际是这样的:
①创建一个对象,代表值3
②.创建一个变量a(如果它还没有创建的话)
③.将变量与新的对象3连接(引用,指针指向)
扩展说明:
1.变量总是连接到对象,并且绝不会连接到其他的变量上
2.大部分的对象可以连接到其他的对象
3.对象是被分配的一块内存,有足够的空间去表现他们所代表的值,摘抄了部分便于我们理解的内容如下:
①.每一个对象都有两个标准的头部信息:一个类型标识符(去标示这个对象的类型)、一个引用的计数器(用来决定是不是可以回收这个对象)
个人思考:
编程语言本身的实现较复杂,但我觉得“相信它能做到,这就够了”。 底层的东西我们可以去深挖,但我们应该明确我们深挖的目的——更好的理解本层的东西,因为我们大多数人应该并不会去开发一种类似python的语言
参考:http://blog.youkuaiyun.com/chenjinyu_tang/article/details/6738140
3985

被折叠的 条评论
为什么被折叠?



