编写函数
函数的定义
创建一个新的函数对象,封装这个函数的代码,并将这个对象赋值给变量名times。
>>>def times(x,y):
>>> return x*y
...
函数的调用
>>>x = times(2,4)
>>>x
8
>>>x = times('Judy', 4)
>>>x
'JudyJudyJudyJudy'
Python中的多态
从上面两个例子中看到,times函数中表达式x*y的意义完全取决于x和y的对象类型,同样的函数,在一个实例下执行的是乘法,在另一个实例中执行的却是赋值。Python将对某一对象在某种语法下的合理×××由对象自身判断。这种依赖类型的行为称为多态。
例子:寻找序列的交集
def intersect(seq1, seq2):
res = []
for x in seq1:
if x in seq2:
res.append(x)
return res
或者用经典的列表解析表达式来替代:
>>>[x for x in seq1 if x in seq2]
这个单个的代码段可以应用于整个的对象类型范围。
匿名函数:lambda
除了def之外,Python还提供了一种生成函数对象的表达式形式lambda。不同于def,它返回一个函数,而不是将这个函数赋值给一个变量名。这也是为什么有时候称lambda为匿名函数的原因(没有函数名)。
lambda argument1, argument2,... argumentN : expression using arguments
#实例
>>>f = lambda x,y,z : x+y+z
>>>f(1,2,3)
6
Lambda表达式也可以使用默认参数:
>>>f = lambda x,y,z=3 : x+y+z
>>>f(1,2)
6