当前位置:  编程技术>python

Python使用函数默认值实现函数静态变量的方法

    来源: 互联网  发布时间:2014-10-10

    本文导语:  本文实例展示了Python使用函数默认值实现函数静态变量的方法,具体方法如下: 一、Python函数默认值 Python函数默认值的使用可以在函数调用时写代码提供方便,很多时候我们只要使用默认值就可以了。 所以函数默认值在python...

本文实例展示了Python使用函数默认值实现函数静态变量的方法,具体方法如下:

一、Python函数默认值

Python函数默认值的使用可以在函数调用时写代码提供方便,很多时候我们只要使用默认值就可以了。 所以函数默认值在python中用到的很多,尤其是在类中间,类的初始化函数中一帮都会用到默认值。 使用类时能够方便的创建类,而不需要传递一堆参数。

只要在函数参数名后面加上 ”=defalut_value”,函数默认值就定义好了。有一个地方需要注意的是,有默认值的参数必须在函数参数列表的最后,不允许将没有默认值的参数放在有默认值的参数后,因为如果你那样定义的话,解释器将不知道如何去传递参数。

先来看一段示例代码:

def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):
  while True:
    ok = raw_input(prompt)
    if ok in ('y', 'ye', 'yes'): return True
    if ok in ('n', 'no', 'nop', 'nope'): return False
    retries = retries - 1
    if retries < 0: raise IOError, 'refusenik user'
    print complaint

你调用上面的函数时,可以修改重试次数和输出的提示语言,如果你比较懒得话,那么什么都不用改。

二、python使用函数默认值来实现函数静态变量的功能

Python中是不支持静态变量的,但是我们可以通过函数的默认值来实现静态变量的功能。
当函数的默认值是内容是可变的类时,类的内容可变,而类的名字没变。(相当于开辟的内存区域没有变,而其中内容可以变化)。
这是因为python中函数的默认值只会被执行一次,(和静态变量一样,静态变量初始化也是被执行一次。)这就是他们的共同点。

再来看下面的程序片段:

def f(a, L=[]):
  L.append(a)
  return L
 
print f(1)
print f(2)
print f(3)
print f(4,['x'])
print f(5)

其输出结果是:

[1]
[1, 2]
[1, 2, 3]
['x', 4]
[1, 2, 3, 5]

前面的好理解,为什么最后 “print f(5)”的输出是 “[1, 2, 3, 5]”呢?

这是因为 “print f(4,['x'])”时,默认变量并没有被改变,因为默认变量的初始化只是被执行了一次(第一次使用默认值调用),初始化执行开辟的内存区(我们可以称之为默认变量)没有被改变,所以最后的输出结果是“[1, 2, 3, 5]”。

相信本文所述实例对大家Python程序设计有一定的帮助作用。


    
 
 

您可能感兴趣的文章:

  • Python类的构造函数,析构函数以及垃圾回收机制详细介绍及代码举例
  • python中去空格函数的用法
  • Python函数默认参数和字典参数及可变参数(带星号参数)
  • 哪位大侠有python的win32com的api函数说明?
  • Python数组条件过滤filter函数使用示例
  • Python过滤函数filter()使用自定义函数过滤序列实例
  • python回调函数的使用方法
  • Python的函数嵌套的使用方法
  • Python中变量交换的例子 iis7站长之家
  • Python中apply函数的用法实例教程
  • python del()函数用法
  • python中使用enumerate函数遍历元素实例
  • 使用python实现strcmp函数功能示例
  • Python def函数的定义、使用及参数传递实现代码
  • python函数返回多个值的示例方法
  • Python 执行字符串表达式函数(eval exec execfile)
  • Python获取远程文件大小的函数代码分享
  • Python help()函数用法详解
  • python strip()函数 介绍
  • python的id()函数解密过程
  • Python实现动态添加类的属性或成员函数的解决方法
  • Python中变量交换的例子
  • python的类变量和成员变量用法实例教程
  • Python判断变量是否已经定义的方法
  • Python交换变量
  • python 输出一个两行字符的变量
  • python共享引用(多个变量引用)示例代码
  • Python 变量类型及命名规则介绍
  • python实现跨文件全局变量的方法
  • 打印出python 当前全局变量和入口参数的所有属性
  • Python实现全局变量的两个解决方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 针对 Python 的代码静态分析工具 PySonar
  • 静态的Python解析器 StaticPython
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 让python同时兼容python2和python3的8个技巧分享
  • Python不使用print而直接输出二进制字符串
  • 使用setup.py安装python包和卸载python包的方法
  • Python中实现json字符串和dict类型的互转
  • 不小心把linux自带的python卸载了,导致安装一个依赖原python的软件不能安装,请问该怎么办?
  • python异常信息堆栈输出到日志文件
  • python读取csv文件示例(python操作csv)
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • python基础教程之python消息摘要算法使用示例
  • Python namedtuple对象json序列化/反序列化及对象恢复
  • 新手该如何学python怎么学好python?
  • Python获取网页编码的方法及示例代码
  • 使用python删除nginx缓存文件示例(python文件操作)
  • Python异常模块traceback用法举例
  • python学习手册中的python多态示例代码
  • python之平台独立的调试工具winpdb介绍
  • 请教:system("C:\python2.4\python.exe C:\aa.py");该语句有何错误?为什么运行界面一闪就消失了并且没有运行完,请给出正确语句!
  • 基于Python的Html/xml解析库Beautiful Soup 4.2.1发布
  • python版本的问题
  • 测试Python内部类型及type和isinstance用法区别
  • Mac OS X10.9安装的Python2.7升级Python3.3步骤详解


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3