python学习[第十七篇] 函数
函数概念
函数就是对程序逻辑进行结构化或者过程化的一种编程方法
返回值与函数类型
函数没有返回值时,返回的是None。
函数有一个返回值时,返回的是object本身。
函数有多个返回值是,返回的是元组对象。
函数调用
关键字参数
关键字参数仅仅针对函数的调用,让调用者通过函数调用中的参数名字来区分参数。
>>> def test(x,y): ... print x,y ... >>> test(x=45,y=34) 45 34
默认参数
默认参数就是声明了默认值的参数,如果存在非默认参数,那么非默认参数必须在默认参数左(前)边。调用函数时,可以不对默认参数进行赋参,但必须加入非默认参数
#如果存在非默认参数,那么非默认参数必须在默认参数左(前)边 >>> def foo(x=45,y): ... print x ... print y ... File "<stdin>", line 1 SyntaxError: non-default argument follows default argument >>> def foo(x,y=45): ... print x,y ... >>> foo(10) 10 45 >>> foo(15,20) 15 20 >>> foo(x=15,y=20) 15 20 >>> foo(y=15,x=20) 20 15
参数组
python允许程序执行一个没有显示定义参数的哦函数,相应的方法是通过一个元组(非关键字参数),或字典(关键字参数)作为参数组传递给函数。
func(*tuple_grp_nonkw_args ,**dict_grp_kw_args)
其中的tuple是以元组形式提示的非关键字参数组,dict是装有关键字参数的字典。
创建函数
def 语句
python中通过def来创建函数
def function_name(arguments): "function_documentation_string" function_body_suite
前向引用
python中不允许在函数未声明之前调用该函数。
#未定义bar函数 def foo(): print "bar before definite bar" bar() foo() #在foo函数前定义bar函数。 def bar(): print 'bar' def foo(): print "bar before definite bar" bar() foo() #在foo函数后定义bar函数,但是在定义bar函数后,调用foo函数 def foo(): print "bar before definite bar" bar() def bar(): print 'bar' foo()
函数的属性
函数可以有__doc__ version等属性