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 14 Python
浅析Python中MySQLdb的事务处理功能
Sep 21 Python
python中MethodType方法介绍与使用示例
Aug 03 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
Sep 02 Python
破解安装Pycharm的方法
Oct 19 Python
python 字符串常用方法汇总详解
Sep 16 Python
Pyqt5自适应布局实例
Dec 13 Python
Django使用Celery加redis执行异步任务的实例内容
Feb 20 Python
Python基于staticmethod装饰器标示静态方法
Oct 17 Python
详解python爬取弹幕与数据分析
Nov 14 Python
python某漫画app逆向
Mar 31 Python
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
Apr 14 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中使用strpos函数实现屏蔽敏感关键字功能
2014/08/21 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
JavaScript 计算图片加载数量的代码
2011/01/01 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
html+js实现动态显示本地时间
2013/09/21 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
2014/01/07 Javascript
控制台报错object is not a function的解决方法
2014/08/24 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
解决element UI 自定义传参的问题
2018/08/22 Javascript
微信小程序实现基于三元运算验证手机号/姓名功能示例
2019/01/19 Javascript
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
python实现udp数据报传输的方法
2014/09/26 Python
Python3中的真除和Floor除法用法分析
2016/03/16 Python
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
python爬虫之xpath的基本使用详解
2018/04/18 Python
python实现监控某个服务 服务崩溃即发送邮件报告
2018/06/21 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
python 实现按对象传值
2019/12/26 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
智能旅行箱:Horizn Studios
2018/04/30 全球购物
什么是Rollback Segment
2013/04/22 面试题
酒店出纳岗位职责
2013/12/29 职场文书
新教师工作感言
2014/02/16 职场文书
毕业生求职信范文
2014/06/29 职场文书
教师辞职书范文
2015/02/26 职场文书
停电放假通知
2015/04/14 职场文书
一个都不能少观后感
2015/06/04 职场文书
组织委员竞选稿
2015/11/21 职场文书
高中英语教学反思范文
2016/03/02 职场文书
Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解
2022/03/21 Java/Android