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使用urllib模块开发的多线程豆瓣小站mp3下载器
Jan 16 Python
Python高级应用实例对比:高效计算大文件中的最长行的长度
Jun 08 Python
Scrapy爬虫实例讲解_校花网
Oct 23 Python
python实现简易通讯录修改版
Mar 13 Python
Python实现爬虫从网络上下载文档的实例代码
Jun 13 Python
python实现嵌套列表平铺的两种方法
Nov 08 Python
Python基于机器学习方法实现的电影推荐系统实例详解
Jun 25 Python
Pandas之groupby( )用法笔记小结
Jul 23 Python
关于tf.reverse_sequence()简述
Jan 20 Python
Python抖音快手代码舞(字符舞)的实现方法
Feb 07 Python
Pyside2中嵌入Matplotlib的绘图的实现
Feb 22 Python
Django rest framework如何自定义用户表
Jun 09 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下判断网址是否有效的代码
2011/10/08 PHP
PHP封装的HttpClient类用法实例
2015/06/17 PHP
PHP预定义变量9大超全局数组用法详解
2016/04/23 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
实例:用 JavaScript 来操作字符串(一些字符串函数)
2007/02/15 Javascript
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
Jquery之美中不足小结
2011/02/16 Javascript
一个关于jqGrid使用的小例子(行按钮)
2011/11/04 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
Vue实现路由跳转和嵌套
2017/06/20 Javascript
bootstrap table插件的分页与checkbox使用详解
2017/07/23 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
2017/09/25 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
python实现zencart产品数据导入到magento(python导入数据)
2014/04/03 Python
对python中的argv和argc使用详解
2018/12/15 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
python集合的新增元素方法整理
2020/12/07 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
html5中的一些标签学习(心得)
2016/10/18 HTML / CSS
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
财务经理的岗位职责
2013/12/17 职场文书
给学校的建议书范文
2014/05/15 职场文书
没有孩子的离婚协议书怎么写
2014/09/17 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书
Django操作cookie的实现
2021/05/26 Python
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python