免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1724 | 回复: 0
打印 上一主题 下一主题

Python 简明教程——函数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-24 14:02 |只看该作者 |倒序浏览
  Python中,函数通过def关键字定义。def关键字后跟一个函数的函数名,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾。接下来是一块语句,它们是函数体。

函数形参
   函数取得的参数是调用函数时提供给函数的值,这样函数就可以利用这些值 。这些参数就像变量一样,只不过它们的值是在调用函数的时候定义的,而非在函数本身内赋值。
   参数在函数定义的圆括号对内指定,用逗号分割。当调用函数的时候,需要以同样的方式提供值。
局部变量
   当在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。
如果要为一个定义在函数外的变量赋值,需要说明这个变量是全局的。可以使用global语句完成这一功能。可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。使用global语句可以清楚地表明变量是在外面的块定义的。
默认参数值
在函数定义的形参名后加上赋值运算符(=)和默认值,可以给形参指定默认参数值。
使用默认参数值的例子
#!/usr/bin/python
def say(message, times = 1):
    print message * times
say('Hello')
say('World', 5)
输出
Hello
WorldWorldWorldWorldWorld
只有在形参表末尾的那些参数可以有默认参数值,这是因为赋给形参的值是根据位置而赋值的。
关键参数
如果某个函数有许多参数,而在调用时只想指定其中的一部分,这时可以通过命名来为这些参数赋值(关键参数)——使用形参名字(关键字)而不是位置来给函数指定实参。
这样做有个好处:不必考虑参数的顺序,使用函数调用变得更加简单了。
例:
#!/usr/bin/python
def func(a, b=5, c=10):
    print 'a is', a, 'and b is', b, 'and c is', c
func(3, 7)
func(25, c=24)
func(c=50, a=100)
return语句
return语句用来从一个函数返回。也可以返回一个值。没有返回值的return语句等价于return None。None是Python中表示没有任何东西的特殊类型。
DocStrings
Python有一个很奇妙的特性,称为文档字符串(docstrings) 。DocStrings是一个重要的工具,它可以使程序文档更加简单易懂。
使用DocStrings
#!/usr/bin/python
def printMax(x, y):
    '''Prints the maximum of two numbers.
    The two values must be integers.'''

    x = int(x) # convert to integers, if possible
    y = int(y)
    if x > y:
        print x, 'is maximum'
    else:
        print y, 'is maximum'
printMax(3, 5)
print printMax.__doc__
输出:
5 is maximum
Prints the maximum of two numbers.
        The two values must be integers.
在函数的第一个逻辑行的字符串是这个函数的文档字符串。DocStrings也可以用于模块和类。
文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。
可以使用__doc__(双下划线)调用文档字符串属性。Python把所有东西都作为对象,包括函数。
Python中的help()函数所做的只是获取函数的__doc__属性并显示。pydoc命令,与help()类似地使用DocStrings。



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/8780/showart_144949.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP