函数

函数与方法

Python中函数与方法是有区别的。

函数在module中定义,方法在class中定义并与对象关联。

对于C来说只有函数;对于C++、php和Python来说有函数和方法;对于Java来说只有方法。

基本形式

def function(params):
    do something...

默认参数

函数调用时可使用较少的参数,未被使用的默认参数使用默认值,默认参数需要在参数声明的后面

def function(param1,param2=10):
    print (param1,param2)

#输出 apple 10
function('apple')

关键字参数

形式:function(key=value)

使用关键字参数,函数调用时参数的顺序可与声明时不一致,Python解释器可用参数名匹配参数值,参数名必须存在。

def printinfo( name, age ):
   print ("Name:", name)
   print ("Age ", age)

printinfo( age=50, name="miki" );

不定长参数

方法可接收不定数量的多个参数。

*args表示任意多个无名参数,函数内部为一个tuple;

**kwargs表示任意多个关键字参数,函数内部为一个dict。

def concat(*args, sep="/"):
    print (sep.join(args))

#结果:sun/earth/moon
concat('sun','earth','moon')

匿名函数

Python使用lambda表达式创建匿名函数。

  • lambda只是一个表达式,函数体比def简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
  • lambda只能有一个表达式,返回值即是表达式的结果。

lambda表达式的形式:

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

关键字lambda 表示匿名函数,冒号前面的 arg 表示函数参数。

lambda x: x * x即等效于:

def f(x):
    return x * x

返回值

return后不带值,返回None。

return后带值,返回该值。

函数返回多个值,实际上返回是一个包含结果的tuple:

def top3(list):
    list.sort(reverse=True)
    return list[0],list[1],list[2]

a,b,c=top3([45,2,56,12,90])
#输出90 56 45
print(a,b,c)
posted @ 2017-07-09 22:44  _Arvin  Views(94)  Comments(0Edit  收藏  举报