函数相关

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。

上一篇下一篇

猜你喜欢

热点阅读