阅 读 文 章

Python 指南

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(mq110) | 时间:2007-05-27 | 浏览:人次 ]


>;>;>; f100                # write the result
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
和以前一样,这个例子演示了一些新的Python功能:


 mq110 回复于:2005-05-31 16:54:44

4.7 深入函数定义
有时需要定义参数个数可变的函数。有三个方法可以做到,我们可以组合使用它们。

  
4.7.1 参数默认值 
最有用的形式是给一个或多个参数指定默认值。这样创建的函数可以在调用时使用更少的参数。

def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):
    while True:
        ok = raw_input(prompt)
        if ok in ('y', 'ye', 'yes'): return 1
        if ok in ('n', 'no', 'nop', 'nope'): return 0
        retries = retries - 1
        if retries < 0: raise IOError, 'refusenik user'
        print complaint
这个函数还可以用以下的方式调用:ask_ok('Do you really want to quit?'),或者像这样:ask_ok('OK to overwrite the file?', 2)。

默认值在函数定义段被解析,如下所示:

i = 5

def f(arg=i):
    print arg

i = 6
f()
will print 5. 

重要警告:默认值只会解析一次。当默认值是一个可变对象,诸如链表、字典或大部分类实例时,会产生一些差异。例如,以下函数在后继的调用中会积累它的参数值:

def f(a, L=[]):
    L.append(a)
    return L

print f(1)
print f(2)
print f(3)
这会打印出:

[1]
[1, 2]
[1, 2, 3]
如果你不想在不同的函数调用之间共享参数默认值,可以如下面的实例一样编写函数:

def f(a, L=None):
    if L is None:
        L = []
    L.append(a)
    return L
  
4.7.2 参数关键字 
函数可以通过参数关键字的形式来调用,形如“keyword = value”。例如,以下的函数:

def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):
    print "-- This parrot wouldn't", action,
    print "if you put", voltage, "Volts through it."
    print "-- Lovely plumage, the", type
    print "-- It's", state, "!"
论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 指南 一个 可以 Python 模块 文件 方法 函数 对象 字符串

最新评论 共有1位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.