Python经验主义学习之路——可变对象和不可变对象
来源:互联网 发布:caffe alexnet 训练 编辑:程序博客网 时间:2024/06/02 04:57
可变对象与不可变对象
数据类型和变量
Python的数据类型和C++几乎相同,但是变量的概念和C++/C目前来看有一点差别(但在汇编的角度上看,和汇编中的变量概念差不多),在C/C++中,我们可以把变量在逻辑上抽象成一个带有名字的盒子,如下简单代码。
int main(void){ int a; a = 5; a = 6;}
其中a相当于一个可以存放数据的盒子,在高级的逻辑层面上,可以这么认为,在内存中创建了个叫 a 的盒子,这是盒子里是空的(任意的),之后在里面放入了5,之后又将6放入盒中,覆盖了5。但是在汇编层面上a其实是一个地址。
在Python中,变量a 就是一个名字,一个指针。该指针指向了一个对象。在Python中我目前是这样理解的一个对象是特定地址的数据,数据类型这个概念是对于变量指向的对象来说的(只有对象才有数据类型这个概念)。比如 5 这个 a指向的对象是 int类型,6这个a指向的对象是int型,而不是说 a 是int 型,a只是一个变量,只是一个指针而已。
list 和 tuple认识可变对象和不可变对象
接着上文。可变或者不可变是对于 一个内存中创建的对象来说的,一个确定的变量 有两种分类,一类为 可变对象。一类为不可变对象。不可变对象 对象占据的内存空间中的内容不可变。比如5在5的房间里永远为5,不能变6或者‘abc'。看下面的Python代码。
a = 5 ; a = 'abc'
a开始指向了5,之后又指向了'abc',似乎a变了,但是内存中的 5 , abc本身的内容并没有发生改变。
关于 list 和 tuple 的探讨。详见点击打开链接
其中,list和tuple作为复合对象, l其中List为可变对象,tuple为不可变对象。list和tuple的实质是装着内存地址,说他们变或者不变实质是指向的变或者不变。但他们指向的内容变或者不变就是另一回事情了。
阅读全文
0 0
- Python经验主义学习之路——可变对象和不可变对象
- python学习之路——函数关于可变对象和不可变对象问题
- Python学习笔记——可变对象和不可变对象
- python可变对象和不可变对象
- Python-可变对象和不可变对象
- python的可变和不可变对象
- Python基础:Python可变对象和不可变对象
- Python基础:Python可变对象和不可变对象
- python 之可变对象与不可变对象
- Python中可变对象和不可变对象
- python知识点:可变对象和不可变对象
- Python中的可变对象和不可变对象
- python 可变对象与不可变对象
- python可变对象与不可变对象
- (python)可变对象/不可变对象
- python中 可变与不可变对象
- Python 中可变与不可变对象
- python下的可变对象与不可变对象
- 社交系统ThinkSNS+ 更新至V0.8.2,新增圈子功能
- Can't find file: './mysql/plugin.frm'
- 12000字揭秘阿里连环炮面试
- mac下使用ll,ls等指令
- Sublime Text 3 快捷键汇总
- Python经验主义学习之路——可变对象和不可变对象
- 万维链的应用场景(二)
- QSettings帮助文档翻译
- Ubuntu14.04 安装PIL
- Spring3.2下使用JavaMailSenderImpl类发送邮件
- mysql 中自定义实现split功能的函数
- 关于RemoteView构造函数中layoutId布局的根节点必须含有layout_width属性问题
- Android生命周期
- 安装php Memcached扩展