美文网首页
第一节 从赋值语句 a = 3 开始吧

第一节 从赋值语句 a = 3 开始吧

作者: 江山画_孤影 | 来源:发表于2018-04-17 20:55 被阅读0次

序言

1.本文为基础回顾,内容可参考《python学习手册》第六章,但本书不推荐入门
2.关于赋值复制,共享不共享,可变不可变,深浅拷贝,很多人的认识都是稀里糊涂甚至是错误的,即使一些优秀的博文里也依然存在一些问题.

一.变量/变量名

1.在动态语言Python中,变量没有类型,也无需声明类型!而在静态语言如C语言中必须先声明变量类型,例如 int a .

2.要使用变量,必须先赋值,否则Python会认为这个变量没有定义

3.任何变量都可以指向任何类型
例:变量a = 3(数值型); a = 'bird'(字符串);a = [1,2,3,4](列表).......变量b,c,dlasdl........只要是变量都可以指向任何类型

4.变量永远不能指向其他变量,变量只能指向对象(由于函数也是对象,所以变量也可以指向函数,这在后面的高阶函数部分会讲到).

二.对象

1.变量和对象是分离的,对象是内存中储存数据的实体.每个对象都有三个要素:value(值),type(数据类型),id(身份标识或内存地址).
2.类型属于对象,而不属于变量;对象的类型包括:int,float,str,list,tuple,dict,set等

三.赋值过程 以 a = 3 为例:

1.创建一个对象来代表3
2.创建一个变量a
3.将变量与对象相连接

注意:
1.对象在赋值之前就已创建(赋值是在最后一步)
2.变量其实是指向内存中对象的一个指针,是对对象的值的引用.
3.程序运行一旦结束,内存就会直接释放,直到再次运行,但是对象的内存地址(id)不再是原来的id.(涉及python的垃圾回收机制)

一图解千愁

四. 对一个变量进行多次赋值

图解

题外话

变量没有声明类型,那么输入a = 3的时候,python是如何知道那代表一个整数呢?

是这样的,在python中类型是和对象相关联的,而对象知道自己的类型,因为每个对象都含有两个头部信息,一个是类型标志符,另一个是引用计数器(与回收机制相关)因为变量始终只是在引用对象,所以变量即使没有声明类型,python你也能知道这是什么类型.这就是python灵活优越之处,它将程序员从原来必须要声明数据类型中解放了出来

相关文章

网友评论

      本文标题:第一节 从赋值语句 a = 3 开始吧

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