概述
函数是一个对象,函数名为变量,函数定义时即初始化为指向函数对象
print abs(-5)
myabs = abs
print myabs(-8)
abs = -10
print abs
print myabs(-18)
output:
5
8
-10
18
函数调用
- 传递参数个数不对,报TypeError错误
- 传递参数类型不对,报TypeError错误
函数返回值
- 函数返回值类型为tuple
- return None可略写为return,因此无返回值实质返回None
- 函数末无return时,实质在函数末有隐含的return None
def nop(x):
pass
def add(x, y):
return x + y
def addStep(x, y, step):
nx = x + step
ny = y + step
return nx, ny
print nop(5)
print add(10, 20)
print addStep(100, 200, 80)
output:
None
30
(180, 280)
空函数
def nop():
pass
递归函数
def fact(n):
if n == 1:
return 1
return n * fact(n - 1)
尾递归优化:
def fact(n):
return fact_iter(n, 1)
def fact_iter(num, product):
if num == 1:
return product
return fact_iter(num - 1, num * product)