1、位置参数
python函数中的位置参数和java函数是一个意思,比如现在我们计算2+3:
def add(a,b):
return a+b
print add(2,3)
>>5
2、默认参数
顾名思义,就是在定义函数的时候给属性添加默认值呗
def add(a,b=8):
return a+b
print add(2,3)
print add(2)
>>5
>>10
3、可变参数
在我的理解中就是,传入一个list或者tuple,他们是可变的,在函数中通过循环把他们的内容取出来做处理。
def add(numbers):
sum=0
for i in numbers:
sum = sum +i
return sum
list = [1,2,3]
tuple = (1,2,3,4)
print add(list)
print add(tuple)
>>6
>>10
这个时候你回觉得有点麻烦,每次传入的数据必须先要封装成一个数组或者元组,这个时候你也可以使用“*”来简化可变参数:
def add1(*numbers):
sum=0
for i in numbers:
sum = sum +i
return sum
print add1(1,2,3,4,5)
>>15
4、关键字参数
允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
>>person("ly",12)
>>name:name="ly",age=12
person('lh', 15, gender='M', job='ETL)
>>name: lh age: 15 other: {'gender': 'M', 'job': 'ETL'}
5、命名关键字参数
和关键字参数的 的区别就是提前给参数命名:但是用法是不一样的,他是使用“”来分割参数,“”后面的参数视为命名关键字参数
def person(name, age, *, city, job):
print(name, age, city, job)
>> person('xy', 24, city='Beijing', job='doctor')
>>xy 24 Beijing doctor
6、参数组合
参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
def f1(a, b, c=0, *args, **kw):
print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
def f2(a, b, c=0, *, d, **kw):
print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)