关于Python的静态变量
来源:互联网 发布:c语言入门自学 编辑:程序博客网 时间:2024/04/30 01:56
Python中是不支持静态变量的,但是我们可以通过函数的默认值来实现静态变量的功能。
当函数的默认值是内容是可变的类时,类的内容可变,而类的名字没变。(相当于开辟的内存区域没有变,而其中内容可以变化)。
这是因为python中函数的默认值只会被执行一次,(和静态变量一样,静态变量初始化也是被执行一次。)这就是她们的共同点。
def f(a, L=[]):
L.append(a)
return L
print f(1)
print f(2)
print f(3)
print f(4,['x'])
print f(5)
他的输出是:
[1]
[1, 2]
[1, 2, 3]
['x', 4]
[1, 2, 3, 5]
前面的好理解,为什么最后 “print f(5)”的输出是 “[1, 2, 3, 5]”呢?
这是因为 “print f(4,['x'])”时,默认变量并没有被改变,因为默认变量的初始化只是被执行了一次(第一次使用默认值调用),初始化执行开辟的内存区(我们可以称之为默认变量)没有被改变,所以最后的输出结果是“[1, 2, 3, 5]”。
- 关于Python的静态变量
- 关于静态变量的继承
- 关于OBJC的静态变量
- Python的静态成员变量和非静态成员变量
- 关于静态变量的的介绍
- 关于php类静态变量的例子
- 关于PHP的static(静态)变量
- 关于android的静态变量static关键字
- 关于全局与静态变量的思考
- 关于static静态变量的灵活使用
- 关于静态成员变量的赋值
- c++ 关于静态变量的初始化
- 关于类的静态成员变量
- 关于++和静态变量的一个题
- 关于静态成员变量的谈论
- 关于static静态变量的几个问题
- 关于静态变量编译的问题
- 关于静态变量的内存分配问题
- 11月1日到11月14日的成果
- 第五章 依赖倒转
- ifconfig 指令详细介绍
- C#垃圾回收之二次回收机制
- EJB3.0注释小结
- 关于Python的静态变量
- C#数据库(c#通过调用存储过程返回表)
- 用PXE安装WINDOWS(linux->windows)
- C#数据库操作类
- Java同步技术(九)
- 面试顺利的7个迹象
- linux 心得
- URL编码表一览
- Oracle与SQL Server的互连