2020年2月1日 / 1,297次阅读 / Last Modified 2021年5月16日
函数
我在记录自己学习python函数闭包特性的时候,提到可以通过闭包的方式来实现函数的静态变量。
其实,我觉得在python中实现静态变量,最简单的方式就是用一个全局变量。静态变量这个概念来自C语言,这种静态变量的特征是,(1)只能被特定的那个函数访问;(2)变量值保存在.data区,因此静态变量的值不会因为函数执行结束而消失,并且在下次函数被调用时,体现出上一次的“记忆”。
如果我们用一个全局变量,并且只在某一个函数内通过global申明并使用此全局变量,这个全局变量,实际上也跟静态变量是一样的了!因此,python中没有专门的静态变量,就可以理解,没有必要呀!
除了闭包和全局变量,用类的方式也可以实现静态变量的效果。用一个对象的属性来实现静态变量的效果,也是很简单可行的。
其实,我觉得跟重要的是,不要被C语言的静态变量这个概念限制住,关注要实现的功能,用python提供的机制,不要纠结概念!
补充一个Python函数实现静态变量的方案:妙用python函数的默认可变参数
-- EOF --
本文链接:https://www.pynote.net/archives/1773
Ctrl+D 收藏本页
©Copyright 麦新杰 Since 2019 Python笔记