python学习[第十七篇] 函数

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等属性

猜你喜欢

转载自www.cnblogs.com/ryanpan/p/9380222.html