注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

与牛熊共舞

2010与牛熊共舞,共同创造一个神话

 
 
 

日志

 
 

Python 简明教程——函数  

2010-12-30 18:56:11|  分类: Python |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  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。
 
 

  评论这张
 
阅读(135)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018