2017.11.9函数的作用域

必选参数

必选参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。

默认参数

调用函数时,缺省参数的值如果没有传入,则被认为是默认值。

可变参数-元组

在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。参数组装成一个tutple

def calc(*numbers):

sum = 0

for n in numbers:

sum = sum + n * n

return sum

可变参数-字典

变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

def person(name, age, **kw):

print('name:', name, 'age:', age, 'other:', kw)

参数组合

参数定义的顺序必须是:

必选参数、默认参数、可变参数。

变量作用域介绍

一个程序的所有的变量并不是在哪个位置都可以访问的。访问权限决定于这个变量是在哪里赋值的。

变量的作用域决定了在哪一部分程序你可以访问哪个特定的变量名称。两种最基本的变量作用域如下:

1、全局变量

如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是全局变量。如果要再函数中修改全局变量,使用global声明。

2、局部变量

局部变量,就是在函数内部定义的变量不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响。局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用。

如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量。在函数外边定义的变量叫做全局变量

     全局变量能够在所以的函数中进行访问。如果在函数中修改全局变量,那么就需要使用global进行声明。如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的,小技巧强龙不压地头蛇。

递归函数

如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数。

满足递归的条件:

1、有循环的内容

2、有跳出的条件

3、递归默认是有递归深度要求的。

匿名函数

   1、用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。

2、   lambda函数的语法只包含一个语句,如下:

lambda [arg1 [,arg2,.....argn]]:expression

注意:Lambda函数能接收任何数量的参数但只能返回一个表达式的值

你可能感兴趣的:(2017.11.9函数的作用域)