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获取远程文件大小的函数代码分享
May 13 Python
Python3.2模拟实现webqq登录
Feb 15 Python
python使用matplotlib绘图时图例显示问题的解决
Apr 27 Python
Python中动态检测编码chardet的使用教程
Jul 06 Python
python实现微信接口(itchat)详细介绍
Oct 23 Python
使用python实现ftp的文件读写方法
Jul 02 Python
使用python进行广告点击率的预测的实现
Jul 04 Python
python向图片里添加文字
Nov 26 Python
python怎么对数字进行过滤
Jul 05 Python
Python 创建守护进程的示例
Sep 29 Python
python 利用matplotlib在3D空间中绘制平面的案例
Feb 06 Python
pytorch 如何使用batch训练lstm网络
May 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
PHP程序员编程注意事项
2008/04/10 PHP
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
2012/07/31 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
event.X和event.clientX的区别分析
2011/10/06 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
基于AngularJS的简单使用详解
2017/09/10 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
解决vue-cli3 使用子目录部署问题
2018/07/19 Javascript
nodejs aes 加解密实例
2018/10/10 NodeJs
vue+elementUI实现图片上传功能
2019/08/20 Javascript
微信小程序封装多张图片上传api代码实例
2019/12/30 Javascript
python中使用pyhook实现键盘监控的例子
2014/07/18 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
2017/11/02 Python
Python实现的字典值比较功能示例
2018/01/08 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
python文件及目录操作代码汇总
2020/07/08 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
销售心得体会
2014/01/02 职场文书
入学生会自荐书范文
2014/02/05 职场文书
刚毕业大学生自荐信范文
2014/02/20 职场文书
小学生评语集锦
2014/04/18 职场文书
Python打包为exe详细教程
2021/05/18 Python
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB