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内存管理方式和垃圾回收算法解析
Nov 11 Python
python 从csv读数据到mysql的实例
Jun 21 Python
Python解决线性代数问题之矩阵的初等变换方法
Dec 12 Python
Django实现学员管理系统
Feb 26 Python
使用Python控制摄像头拍照并发邮件
Apr 23 Python
Django中提供的6种缓存方式详解
Aug 05 Python
python os.path.isfile()因参数问题判断错误的解决
Nov 29 Python
python 实现从高分辨图像上抠取图像块
Jan 02 Python
Python基础之字典常见操作经典实例详解
Feb 26 Python
python在CMD界面读取excel所有数据的示例
Sep 28 Python
python使用scapy模块实现ping扫描的过程详解
Jan 21 Python
python实现批量提取指定文件夹下同类型文件
Apr 05 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
拼音码表的生成
2006/10/09 PHP
用PHP动态生成虚拟现实VRML网页
2006/10/09 PHP
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
使两个iframe的高度与内容自适应,且相等
2006/11/20 Javascript
JQuery弹出层示例可自定义
2014/05/19 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
javascript实现模拟时钟的方法
2015/05/13 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
2016/08/23 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
jquery判断类型是不是number类型的实例代码
2016/10/07 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
微信小程序之数据双向绑定与数据操作
2017/05/12 Javascript
基于node.js制作简单爬虫教程
2017/06/29 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
viewer.js实现图片预览功能
2020/06/24 Javascript
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
python在html中插入简单的代码并加上时间戳的方法
2018/10/16 Python
Scrapy框架介绍之Puppeteer渲染的使用
2020/06/19 Python
Django数据库迁移常见使用方法
2020/11/12 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
戴尔新西兰官网:Dell New Zealand
2020/01/07 全球购物
初中音乐教学反思
2014/01/12 职场文书
入学申请自荐信范文
2014/02/26 职场文书
作文评语集锦大全
2014/04/23 职场文书
高中生操行评语大全
2014/04/25 职场文书
征兵宣传标语
2014/06/20 职场文书
车贷收入证明范本
2014/09/14 职场文书