python类和函数中使用静态变量的方法


Posted in Python onMay 09, 2015

本文实例讲述了python类和函数中使用静态变量的方法。分享给大家供大家参考。具体分析如下:

在python的类和函数(包括λ方法)中使用静态变量似乎是件不可能[Nothing is impossible]的事,
但总有解决的办法,下面通过实现一个类或函数的累加器来介绍一些较为非主流的方法

方法一、通过类的__init__和__call__方法

class foo:
  def __init__(self, n=0):
    self.n = n
  def __call__(self, i):
    self.n += i
    return self.n
a=foo()
print a(1)
print a(2)
print a(3)
print a(4)

方法二、在函数中定义一个类

def foo2 (n=0):
  class acc:
    def __init__ (self, s):
      self.s = s
    def inc (self, i):
      self.s += i
      return self.s
  return acc (n).inc
a=foo2()
print a(1)
print a(2)
print a(3)
print a(4)

方法三、使用堆上的匿名参数

def foo3 (i, L=[]):
  if len(L)==0:
    L.append(0)
  L[0]+=i
  return L[0]
 
print foo3(1)
print foo3(2)
print foo3(3)
print foo3(4)

在python官方的2.6环境下运行,
上述三段代码得到的结果都是

1 
3 
6 
10

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python日期的加减等操作的示例
Aug 15 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
May 30 Python
用Python将mysql数据导出成json的方法
Aug 21 Python
解决Python中list里的中文输出到html模板里的问题
Dec 17 Python
Python3爬虫之urllib携带cookie爬取网页的方法
Dec 28 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
Feb 21 Python
详解python实现数据归一化处理的方式:(0,1)标准化
Jul 17 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
Aug 08 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
May 20 Python
python读取hdfs上的parquet文件方式
Jun 06 Python
通过实例解析Python RPC实现原理及方法
Jul 07 Python
基于Django集成CAS实现流程详解
Nov 28 Python
Python实用日期时间处理方法汇总
May 09 #Python
python fabric使用笔记
May 09 #Python
Python字符串详细介绍
May 09 #Python
Python urllib、urllib2、httplib抓取网页代码实例
May 09 #Python
python MySQLdb Windows下安装教程及问题解决方法
May 09 #Python
Python MySQLdb Linux下安装笔记
May 09 #Python
python实现类的静态变量用法实例
May 08 #Python
You might like
php adodb分页实现代码
2009/03/19 PHP
php不使用插件导出excel的简单方法
2014/03/04 PHP
yii实现CheckBox复选框在同一行显示的方法
2014/12/03 PHP
64位windows系统下安装Memcache缓存
2015/12/06 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
学习ExtJS TextField常用方法
2009/10/07 Javascript
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
JS实现的自定义网页拖动类
2015/11/06 Javascript
AngularJS在IE8的不支持的解决方法
2016/05/13 Javascript
Vue.js第四天学习笔记(组件)
2016/12/02 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
2020/08/31 Javascript
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
[47:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第二场 3月4日
2021/03/11 DOTA
python打开文件并获取文件相关属性的方法
2015/04/23 Python
使用Python开发SQLite代理服务器的方法
2018/12/07 Python
python项目对接钉钉SDK的实现
2019/07/15 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
在Mac中PyCharm配置python Anaconda环境过程图解
2020/03/11 Python
Python自动登录QQ的实现示例
2020/08/28 Python
美国婚礼装饰和活动用品批发供应商:Event Decor Direct
2018/10/12 全球购物
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
文秘专业自荐信
2013/10/14 职场文书
法人授权委托书范本
2014/04/04 职场文书
城管大队整治方案
2014/05/06 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
党员教师四风自我剖析材料
2014/09/30 职场文书
小学生作文批改评语
2014/12/25 职场文书
客服专员岗位职责
2015/02/10 职场文书
企业愿景口号
2015/12/25 职场文书
nginx配置限速限流基于内置模块
2022/05/02 Servers