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编写android截屏脚本双击运行即可
Jul 21 Python
python抽象基类用法实例分析
Jun 04 Python
在Python的Django框架中创建和使用模版
Jul 15 Python
Python遍历文件夹和读写文件的实现方法
May 10 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
Jul 10 Python
python添加模块搜索路径方法
Sep 11 Python
Python调用C# Com dll组件实战教程
Oct 12 Python
Django项目主urls导入应用中views的红线问题解决
Aug 10 Python
Windows平台Python编程必会模块之pywin32介绍
Oct 01 Python
Django 实现xadmin后台菜单改为中文
Nov 15 Python
python运用pygame库实现双人弹球小游戏
Nov 25 Python
python selenium xpath定位操作
Sep 01 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中看实例学正则表达式
2006/12/25 PHP
PHP Zip压缩 在线对文件进行压缩的函数
2010/05/26 PHP
php 判断服务器操作系统的类型
2014/02/17 PHP
PHP中批量生成静态html(命令行下运行PHP)
2014/04/19 PHP
帝国cms常用标签汇总
2015/07/06 PHP
PHP批量去除BOM头内容信息代码
2016/03/11 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
2017/08/07 PHP
PHP 断点续传实例详解
2017/11/11 PHP
PHP中的self关键字详解
2019/06/23 PHP
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
深入理解在JS中通过四种设置事件处理程序的方法
2017/03/02 Javascript
详解Vue.js 2.0 如何使用axios
2017/04/21 Javascript
bootstrap table使用入门基本用法
2017/05/24 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
python基础教程之字典操作详解
2014/03/25 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
Python生成器next方法和send方法区别详解
2020/05/30 Python
python dict如何定义
2020/09/02 Python
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
工程预算与管理应届生求职信
2013/10/06 职场文书
大学生个人简历自我评价
2013/11/16 职场文书
建筑专业毕业生推荐信
2013/11/21 职场文书
社会学专业学生职业规划书
2014/02/07 职场文书
学校评语大全
2014/05/06 职场文书
小学学校门卫岗位职责
2014/08/03 职场文书
家长高考寄语
2015/02/27 职场文书
python实战之90行代码写个猜数字游戏
2021/04/22 Python
详解Oracle块修改跟踪功能
2021/11/07 Oracle
Spring Bean是如何初始化的详解
2022/03/22 Java/Android