首页 > 代码库 > Python-函数

Python-函数

def funcname(param1,param2,...):

    statements

 

在函数中没有与全局变量同名的变量时,我们可以直接读取全局变量的值(不提倡这么做,容易混淆)

要想在函数内对全局变量进行重新赋值,就得在函数内使用global语句

e.g.

number = 23

def assignnum():

    number=13

assignnum函数里的number只是一个局部变量,对它赋值不会改变全局变量number

def assignnum():

    global number

    number=13

global语句声明number是全局变量,此时修改的就是全局变量number的值了

 

nonlocal语句

python可以实现在一个函数中定义另一个函数,要在内层函数中使用外层函数的变量,就用nonlocal语句

def func_outer():    x=5    def func_inner():        nonlocal x        x=2    func_inner()    print(x)func_outer

输出2

 

函数的缺省参数是从右向左的

def func(a,b=5): #ok

def func(a=5,b): #invalid

 

keyword arguments

#!/usr/bin/pythondef func(a,b=5,c=10):    print a=,a,b=,b,c=,cfunc(3,7)func(25,c=24)func(c=50,a=100)

output:

a=3 b=7 c=10

a=25 b=5 c=24

a=100 b=5 c=50

 

VarArgs parameters

#!/usr/bin/pythondef total(initial=5,*numbers,**keywords):    count = initial    for number in numbers:        count+=number    for keyword in keywords:        count+=keywords[keyword]    return countprint total(10,1,2,3,vagetables=50,fruits=100)

output:

166

*number用来装多出来的位置参数 1,2,3. number是由这些参数组成的list

**keywords用来装多出来的关键字参数 vagetables=50,fruits=100. keywords是由这些参数组成的字典

Python-函数