python可变和不可变对象python中所有的数据都是围绕对象来构建,这些对象可分为两类:可变对象和不可变对象。当变量被赋值,变量中存放的是对象引用(可以理解为C语言中的指针),指向内存中存放该对象的区域。对于不可变对象而言,对象本身不可以改变(也可以理解为对象的值不可以改变),可以改变的是指向该对象的引用。对于可变对象而言,对象本身的内容可以改变,指向该对象的引用不变~不可变对象不可变对象有:
分类:
编程语言 时间:
2018-08-12 15:34:15
阅读次数:
145
字符串:1.是由一个个字符组成有序的序列,是字符的集合2.字符串是不可变对象3.使用单引号、双引号、三引号引住的字符序列4.python3中、字符串就是unicode类型、在2中分两种一种unicode一种非unicode字符串元素访问--下标:1.字符串支持使用索引访问2.有序的字符集合,字符序列3.是可迭代的字符串join连接:1.字符串可以拼接起来、如(重复拼接)、+(两个拼接成一个新的)2
分类:
编程语言 时间:
2018-08-12 12:14:32
阅读次数:
246
List定义及常用的方法见上一篇博客。 Tuple元组tuple的定义: tuple是一个有序的元素组成的不可变对象的集合,使用小括号()表示,是可迭代对象 元组中数据的访问 &n
分类:
编程语言 时间:
2018-08-12 01:32:18
阅读次数:
247
字符串*** 是由一个个字符组成的有序的序列,是字符的集合 使用单引号,双向引号,三引号引住的字符序列 #三引号中可以放sql语句 字符串是不可变对象字符串元素访问 字符串支持使用索引访问 有序列的字符集合,字符序列 字符串可以是个容器,可以被一个个迭代出来,因为它是有顺序的字符串join连接* " ...
分类:
编程语言 时间:
2018-08-11 16:46:48
阅读次数:
228
1.术语程序中所存储的所有数据都是对象。每个对象都有一个身份、一个类型和一个值。对象的身份可以看作是指向它在内存中所处位置的指针,变量名就是引用这个具体位置的名称。对象的类型也称作类别,用于描述对象的内部表示及它支持的方法与操作。创建特定类型的对象时,有时也将该对象称为该类型的实例。实例被创建之后,它的身份和类型就不可改变。如果对象的值是可以修改的,称为可变对象,反之称为不变对象。如果某个对象包含
分类:
编程语言 时间:
2018-08-09 22:01:31
阅读次数:
173
上面两个函数打印的结果是什么 函数1打印得到的是: [21, 28][2, 11][21, 28] 函数2 打印得到的是: NoneNoneNone 考察的知识点: 可变对象不能做关键字参数 .append() 没有返回值 ...
分类:
编程语言 时间:
2018-08-07 18:58:25
阅读次数:
126
python 传不可变对象实例: 传可变对象实例 可变对象在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了。例如: 传入函数的和在末尾添加新内容的对象用的是同一个引用,都是那个列表对象。故输出结果如下: ...
分类:
编程语言 时间:
2018-08-03 14:19:25
阅读次数:
147
Immutable(不可变)集合 一、概述 guava是google的一个库,弥补了java语言的很多方面的不足,很多在java8中已有实现,暂时不展开。Collections是jdk提供的一个工具类。 Guava中不可变对象和Collections工具类的unmodifiableSet/List/ ...
分类:
编程语言 时间:
2018-08-02 01:48:43
阅读次数:
170
在Python中,作为默认参数的一定要是不可变对象,如果是可变对象,就会出现问题,稍不注意,就会调入陷阱,尤其是初学者,比如我(┬_┬)。 我们来看一个例子。 运行结果如图: 在正常传入参数的时候,好像没什么大问题。但是当我们使用默认参数的时候,问题出现了。 运行结果没有按我们的预期出现。原因何在? ...
分类:
编程语言 时间:
2018-08-01 14:21:07
阅读次数:
191
通过反射还是可以修改的。 public static void stringReflection() throws Exception { String s = "Hello World"; System.out.println("s = " + s); //Hello World //获取Stri ...
分类:
编程语言 时间:
2018-07-31 19:11:27
阅读次数:
120