python学习笔记1:动态类型模型

如下图是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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值