函数
1. 简介
函数通过def关键字定义,def关键字后跟一个函数的标识符名称,然后跟一对圆括号.圆括号中可以包括一些便两名,该行以冒号结尾.接下来是一块语句,它们是函数体.
定义函数的例子:
def function():
print 'how to define a function.'
function()
2. 函数的形参
函数中的参数名称称为形参,提供给函数调用的值称为实参.
使用函数形参的例子:
def printmax(a,b):
if a>b:
print a,"is maximum."
else:
print b,"is maximum."
printmax(3,4)
x=5
y=7
printmax(x,y)
3. 局部变量
当在函数内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的,这称为变量的作用域.所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始.
使用局部变量的例子:
def func(x):
print 'x is',x
x=2
print 'changed local x to',x
x=50
func(x)
print 'x is still',x
4. 默认参数值
对于一些函数,参数是可选的,如果用户不想为这些参数供值的话,参数就使用默认值.可以在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值.
注意:只有在形参表末尾的那些参数可以有默认参数值.
例子:
def say(message,times=1):
print message*times
say('hello')
say('world',5)
5. 关键参数
如果某个函数有许多参数,只想指定其中的一部分,可以通过命名来为这些参数赋值-这些被称作关键参数,使用名字(关键字)而不是位置来给函数指定实参.
6. Return语句
Retrun语句用来从一个函数返回即跳出函数.
例子:
def maximum(x,y):
if x>y:
return x
else:
return y
print maximum(6,7)
7. Docstrings
文档字符串,是一个重要工具,帮助程序更加简单易懂.
在函数的第一个逻辑行的字符串是这个函数的文档字符串,文档字符串的惯例是一个多行字符串,首行以大写字母开始,句号结尾,第二行是空行,的三行开始是详细的描述.
例子:
def printMax(x,y):
'''Prints the maximum of two numbers.
The two values must be ingegers.'''
x=int(x)
y=int(y)
if x>y:
print x,'is maximum'
else:
print y,'is maximum'
printMax(3,5)
help (printMax)
备注:
在python中,有多种方式可以用来查询相关的帮助信息,各种方式可以提供详略不同的内容。
首先,可以看程序文件中的注释。这是一个程序最基本的帮助信息。对于一个程序并不是每个人都可以看到原文件,此外这个注释信息一般比较散乱,因此,这并不是一种好方法。不过不用担心,python提供了足够多的选择。
第二,在交互模式中可以使用内置dir()函数列出一个对象有哪些属性和方法。dir()只列出相关的属性和方法的名字,并不提供具体的解释。
第三,查看对象的__doc__属性。在一个模块被import时,其文件中的某些特殊的字符串会被python解释器保存在相应对象的__doc__属性中。比如,一个模块有模块的__doc__,一个class或function也有其对应的__doc__属性。在python中,一个模块其实就是一个.py文件。在文件中特殊的地方书写的字符串就是所谓的docstrings,就是将被放到__doc__的内容。这个“特殊的地方”包括:
1. 一个文件任何一条可执行的代码之前 #模块的__doc__
2. 一个类,在类定义语句后,任何可执行代码前#类的__doc__
3. 一个函数,在函数定义语句后,任何可执行代码前#函数的__doc__
docstrings对于放在什么地方是有要求的,但是什么内容则没有硬必珠规定。因此,完成可以在这些地方放上HTMl代码,方便用别的式具产生html的帮助文件。
第四,pydoc工具。这个工具可以提供类似于unix中man页的帮助信息。使用这个工具有两种方式。在交互模式中,可以使用内置函数help(object)来调用pydoc的功能。此外,pydoc也可以单独使用。
· pydoc <name> #用于显示与name相关的内容
· pydoc -k <keyword> #在概要行及模块中搜索keyword
· pydoc -p <port>
#让pydoc作为一个httpd运行,提供网页访问服务,地址为http://localhost:<port>
· pydoc -g #使用图形界面提供帮助信息
· pydoc -w <name>
#生成html格式的帮助文件,name可以是一个python模块名,方法名,如果包含‘/’表示这是个文件名。name还可以是一个目录名,这样会产生这个目录下所有.py文件的相关帮助信息