zz22 发表于 2017-5-3 10:36:42

Python中的函数定义及参数

1、函数必须先声明在使用,自定义函数采用关键字def,返回语句return,同时可以支持pass语句占位,标明函数为空函数:


#~ 函数



# 自定义求绝对值函数

def myAbs (x):

    if not isinstance(x, (int, float)):

      raise TypeError('Illigel argument.')

    if (x > 0):

      return x

    else:

      return -x



myAbs(1)



# 可以使用pass关键字,标明该函数什么事情也不做。主要用于函数占位

def passTest ():

    pass



print('passTest() : ', passTest())# 输出结果:passTest() :None





2、函数的默认参数:



默认参数必须在参数列表的最后定义,用于防止参数不匹配。当有多个默认参数,需要指定某一个默认参数的值时,可以带上参数的名称:


def power(x, n = 2):

    s = 1

    while n > 0:

      n = n - 1

      s = s * x

    return s



s = power(2, 3)

d = power(2)

print('s = %s, d = %d' % (s, d)) # 输出结果: s = 8, d = 4



# 多个默认参数

def add(name, age, sex, province = '四川', city = '成都'):

    print ('name = %s, age = %s, sex = %s, province = %s, city = %s' % (name, age, sex, province, city))



add('张三', 10, '男') # 输出结果:name = 张三, age = 10, sex = 男, province = 四川, city = 成都

add('李四', 9, "女", city = '广安') # 输出结果:name = 李四, age = 9, sex = 女, province = 四川, city = 广安








3、可变参数:



Python支持可变参数传递,采用前参数前边加一个星号(*)来标明参数类型是可变参数,可变参数实际上是采用tuple来接收参数信息,所以可以直接用for in循环遍历参数:


# 可变参数



# 定义求和参数

def sum(*number):

    res = 0

    for v in number:

      res += v;

    return res



print ('1 + 2 + 3 =', sum(1, 2, 3))

print ('1 + 2 =', sum(1, 2))

arg = [1, 2, 3, 4]

print ('1 + 2 + 3 + 4 =', sum(*arg))





4、关键字参数:



关键字参数用两个星号表示(**),内部自动组装成dict类型:


# 关键字参数



def reg(name, age, **other):

    print ('register infomation : name %s, age %s, other %s' % (name, age, other))

# 注意这里的province、city为参数名称,而不是普通字符串

reg('dendy', 20, province = 'sc', city = 'cd') # 输出:register infomation : name dendy, age 20, other {'city': 'cd', 'province': 'sc'}

arg = {'province' : 'sc', 'city' : 'cd'}

reg('lily', 18, **arg) # 输出:register infomation : name lily, age 18, other {'province': 'sc', 'city': 'cd'}





5、各种参数的混合使用:



必选参数、默认参数、可变参数和关键字参数4种参数都可以混合使用,注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数




# 各种参数类型混合使用



def show(a, b, *args, **kw):

    print ('%s, %s, %s, %s' % (a, b, args, kw))



show('haha', 'xixi', 'a', 'b', p1 = 'p1', p2 = 'p2') # 输出: haha, xixi, ('a', 'b'), {'p1': 'p1', 'p2': 'p2'}

arg = ('haha', 'xixi', 'a', 'b')

kw = {'p1' : 'p1', 'p2' : 'p2'} # 输出: haha, xixi, ('a', 'b'), {'p1': 'p1', 'p2': 'p2'}

show(*arg, **kw)


页: [1]
查看完整版本: Python中的函数定义及参数