函数相关
2018-05-22 本文已影响0人
viean
函数定义
def 定义函数,函数返回值用return;
def my_abs(x):
if x >= 0:
return x
else:
return -x
#空函数
def nop():
pass
#参数检查
def my_abs(x):
if not isinstance(x, (int, float)):
raise TypeError('bad operand type')
if x >= 0:
return x
else:
return -x
#返回多个值
def myfun(x):
return x, x*x
num,num2 = myfun(100) #调用
#默认参数
def myfun2(x, y=2)
return x+y
#可变参数 *
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
#可变参数接收的其实是一个tuple
calc(1,2,3,4)
#Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去:
nums = [1, 2, 3]
calc(*nums)
#关键字参数 **, 其为一个dict
def person(name, age, **kw):
print 'name:', name, 'age:', age, 'other:', kw
#调用1
person('Adam', 45, gender='M', job='Engineer')
输出:name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
#调用2
kw = {'city': 'Beijing', 'job': 'Engineer'}
person('Jack', 24, **kw)
# 可变参数 及 关键字参数 综合示例 -- 常规及习惯用法
>>> args = (1, 2, 3, 4)
>>> kw = {'x': 99}
>>> func(*args, **kw)
a = 1 b = 2 c = 3 args = (4,) kw = {'x': 99}
python参数定义顺序必须是:必选参数、默认参数、可变参数和关键字参数。
*args是可变参数,args接收的是一个tuple;
**kw是关键字参数,kw接收的是一个dict。