● 不要使用可变对象作为函数默认值 def append(value, arr=[]): arr.append(value) return arr print append(1) print append(1) print append(1) 运行结果: [1] [1, 1] [1, 1, 1] 原 ...
分类:
编程语言 时间:
2020-06-25 19:55:11
阅读次数:
69
一,对象和值 案例1,如果我们运行下面这种赋值语句: >>> a = 'banana' >>> b = 'banana' 我们知道 a 和 b 定义了一个对象,是字符串;但我们不知道他们到底是不是同一个字符串。这就有可能有两种状态: 在第一种情况中,a 和 b 指向两个不同的对象,这两个对象有相同的 ...
分类:
编程语言 时间:
2020-06-24 16:05:43
阅读次数:
55
首先,我们要明确以下概念: 变量 是系统变量名表中的元素(可以想象成人的名字) 对象 是计算机分配的一块内存,需要足够的空间去表示它的值(可以想象成真正的人) 引用 是 自动形成的从变量到对象的 指针(给人对象取人名变量名) 在Python中,对象按照可变不可变分为可变对象和不可变对象: 可变对象 ...
分类:
编程语言 时间:
2020-06-21 19:56:13
阅读次数:
86
[dict(t) for t in set([tuple(d.items()) for d in li])] 双层列表解析还不太占内存,速度还快,就两个字送给你,牛b! ...
分类:
其他好文 时间:
2020-06-20 00:57:17
阅读次数:
72
Scala 学习 -- 其他集合类学习 一、序列 列表缓冲 ListBuffer List类提供对列表头部快速访问,尾部访问并不高效。使用List类在尾部追加元素往往通过reverse,表头添加, reverse实现。 通过ListBuffer可以简单实现。ListBuffer是一个可变对象,包含在 ...
分类:
其他好文 时间:
2020-06-18 23:24:45
阅读次数:
76
三十四、关系运算符>逻辑运算符(特别低) 三十五、C++中标准输入输出流 cin,C++编程语言互换流中的标准输入流。 cout,C++编程语言互换流中的标准输出流。 cerr,C++预定义的标准错误输出函数,作用就是直接将参数(错误信息)打印到屏幕上。 Cfile是MFC文件类的基类,它直接提供非 ...
分类:
编程语言 时间:
2020-06-17 13:05:47
阅读次数:
98
a=10 print("%d address is %d" % (a,id(a))) def fun(num): print("%d address is %d" % (num,id(num))) fun(a) 运行结果: 10 address is 140706134913584 10 addre ...
分类:
其他好文 时间:
2020-06-09 23:20:09
阅读次数:
60
17.对象引用和拷贝 我们先来看看以下向个概念 变量:是系统变量名表中的元素,通常是由程序员进行定义声明 对象:是计算机分配的一块内存,需要足够的空间去表示它的值 引用:是自动形成的从变量到对象的指针 可变对象:允许对自身内容进行修改。如list、dict、set、自定义类型等。 不可变对象:不允许 ...
分类:
编程语言 时间:
2020-06-02 00:15:43
阅读次数:
102
什么是不可变对象? 众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其 ...
分类:
其他好文 时间:
2020-05-31 15:47:48
阅读次数:
57
引入 1、写程序时容易发生的一类错误 —— 传参过程中,数据结构发生了改变,但没有注意到。 所以就涉及到了可变对象 和 不可变对象 ,参数传递 是 传递值 还是 传递引用 2、Python 里所有的数据类型都是对象 值传递与引用传递: 值传递:就是拷贝参数自身所存储的值,将其传递给函数里的新变量 , ...
分类:
编程语言 时间:
2020-05-30 23:27:25
阅读次数:
127