码迷,mamicode.com
首页 > 编程语言 > 详细

python的函数_byseyOrd

时间:2020-04-12 16:16:31      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:一个   code   instance   参数   函数参数   turn   ret   自带   使用   

函数定义格式

def sum():
"""
函数说明
"""   
pass

函数传值

1)普通传值

def sum(a, b):
"""
函数说明
"""
  pass
sum(1,2)
sun(a=1,b=2)

2)函数参数设置默认值

def sum(a = 1, b):
"""
函数说明
"""
  pass
sum(b=2)

3)使用元组和列表传值——可变参数

  用于传入的参数个数不定的情况,所以当与普通参数一同使用时,把带星号的参数放在最后,使用*号可以将list或tuple的所有元素作为可变参数传进函数里,不管使用的是list还是tuple,变成可变参数时都会转成tuple

def f1(*d):
    print(d, type(d))

def f2(**d):
    print(d, type(d))

# 上面定义了两个函数,分别用了带一个星号和两个星号的参数:
f1(1, 2, 3)
f2(a = 1, b = 2, c = 3)

# 结果如下
(1, 2, 3) <</span>class tuple>
{a: 1, c: 3, b: 2} <</span>class dict>
#其中一个星号的参数是可变参数
f1(1, 2, 3)
#
nums = [1, 2, 3]
fi(*nums)
#
nums = (1, 2, 3)
fi(*nums)

 

4)关键字参数

关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

def person(name, age, **kw):
    print(name:, name, age:, age, other:, kw)

 person(Adam, 45, gender=M, job=Engineer)
name: Adam age: 45 other: {gender: M, job: Engineer}

 

5)参数的类型和顺序

必选参数,默认参数,可变参数,关键字参数和命名关键字参数(星号越多越靠后)

def f1(a, b, c=0, *args, **kw):
    pass
f1(a = 1, b = 2, c = 3, args = (a, b), kw = {x: 99})
f1(1 ,2 , kw = {‘x‘: 99})

 

自定义函数参数检查

  自定义的函数没有参数检查功能,python自带的函数有这样的功能,在参数个数不对是会报TypeError,我们也可以通过raise一个TypeError实现参数检查功能

def my_abs(x):
    if not isinstance(x, (int, float)):
        raise TypeError(bad operand type)
    if x >= 0:
        return x
    else:
        return -x

return 多个值

  python是return多个值的情况是把多个值组成了一个元组再返回

python的函数_byseyOrd

标签:一个   code   instance   参数   函数参数   turn   ret   自带   使用   

原文地址:https://www.cnblogs.com/seyOrd/p/12685368.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!