定义函数:
自定义函数: def 名字(参数):
函数体
返回值
再调用就行
空函数:
pass函数就为空
pass
还可以用在其他语句里,比如:
if age >= 18:
pass
缺少了pass
,代码运行就会有语法错误。
参数检查:
数据类型检查可以用内置函数isinstance
返回多个值:
设置p(a,x):返回多个参数 return x, y
默认参数:
设计str、None这样的不变对象
我们可以用None
这个不变对象来实现:
def add_end(L=None):
if L is None: L = [] L.append('END') return L
可变参数:
作为一个list或tuple传进来
由于参数个数不确定,我们首先想到可以把a,b,c……作为一个list或tuple传进来,这样,函数可以定义如下:
def calc(numbers):
sum = 0 for n in numbers: sum = sum + n * n return sum
作为一个可变参数:只需要加一个*号
def calc(*numbers):
sum = 0 for n in numbers: sum = sum + n * n return sum
有一个list或者tuple,要调用一个可变参数怎么办?可以这样做:
nums = [1, 2, 3]
calc(nums[0], nums[1], nums[2])
所以Python允许你在list或tuple前面加一个*
号,把list或tuple的元素变成可变参数传进去:
nums = [1, 2, 3]
calc(*nums)
关键字参数:
def person(name, age, **kw): print 'name:', name, 'age:', age, 'other:', kw
>>> person('Bob', 35, city='Beijing') name: Bob age: 35 other: {'city': 'Beijing'} >>> person('Adam', 45, gender='M', job='Engineer') name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
关键字参数** 必须要有等于号才能赋值。
*args
是可变参数,args接收的是一个tuple;
**kw
是关键字参数,kw接收的是一个dict。