有参参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有参参数相关的知识,希望对你有一定的参考价值。
函数的作用
1 减少代码的冗余
2 提高了代码的重用性
3 提高了代码的可读性
4 增强了代码的可扩展性
概念:
面向过程编程:功能与功能之间的耦合很紧密
解耦:将一个复杂的功能分解成多个简单的功能,并且将功能与功能之间的影响减到最小
函数里面不宜放一个复杂的功能
在定义函数后最好时在函数名下面解释一下这个函数的功能。
二 定义有参函数
1 位置参数必须要在默认参数的前面
1
2
3
4
|
# def fang(a,b=18): # return a,b # ret=fang(‘方杰‘) # print(ret) |
2 默认参数就是在定义阶段时就给参数传入了参数的值。
1
2
3
|
def aa(a = 9 ): # print(a) # aa() |
3 定义阶段时不建议传入可变的数据类型作为默认参数的值
4 动态参数:*args和**kwargs:在定义阶段,*是将一个个位置参数聚合成一个元组。
**是将一个个关键字参数聚合成一个字典
在不确定传入参数的个数时,可以直接传入动态参数
在定义阶段传入动态参数可以hold 100%的传参。
5 传参必须遵守的顺序:位置参数——》*args——》默认参数——》**kwargs。不管哪个参数不用定义,都得遵循这个定义这个有参函数的顺序。
1
2
3
|
# def aa(a,*b,c=1,**d): # print(a,b,c,d) # aa(1,2,3,4,55,e=6,f=7) |
三 执行有参函数
1 位置参数必须在关键字参数的前面
1
2
3
|
# def aa(a,b): # print(a,b) # aa(1,b=2) |
2 在定义时假如只有位置参数,那么执行的时候传参个数必须要一一对应
1
2
3
|
def aa(a,b,c,d): print (a,b,c,d) aa( 1 , 2 , 3 , 4 ) |
3 默认参数在调用时可以不用传参,没有传参,默认参数就会用定义时给的参数的值,也可以传参,传入参数,就会使用在调用时传入的参数(注意:在不同的环境下,传参的方式不同)
1
2
3
4
5
6
7
8
|
# def aa(a=9): # print(a) # aa() # def aa(a=1): # print(a) # aa(3) |
4 *args动态参数:只基于位置传参上使用,将位置传参多余的参数值以一个元组的形式聚合在一起。在执行的时候假如使用*,就是将一个列表或者元组的元素打散,变成多个位置参数在聚合成一个元组的类型
1
2
3
4
5
6
7
8
|
# def aa(a,*b): # print(a,b) # aa(1,2,3,4,5,6,7) # def aa(*a): # print(a) # l=[1,2,3,4,5] # aa(*l) |
5 **kwargs动态参数:只基于关键字参数上使用,将多余额关键字参数以一个字典的形式聚合到一起。在执行的时候假如使用**,就是讲一个字典的元素打散,变成多个关键字参数。在聚合成一个字典的类型
1
2
3
4
|
# def aa(**a): # print(a) # d={‘b‘:1,‘a‘:2,‘c‘:3} # aa(**d) |
四 嵌套函数
1 外部函数是不能直接调用内部函数的。
2 内部函数是不能在外部函数外直接单独调用
3 假如要调用为内部函数,必须要在外部函数内执行。内部函数必须是在外部函数执行时才能执行。
1
2
3
4
5
6
|
# def func(): # print(22) # def func1(): # print(11) # func1() # func() |
4 有参嵌套函数:
4,1 如果要在外部函数传入参数,和内部函数链接,就要在外部函数传入先对应的参数个数来连接内部函数定义的参数。
1
2
3
4
5
|
# def func(x,y,z): # def func1(a,b,c): # print(a,b,c) # func1(x,y,z) # func(1,2,3) |
4,2 在不确定内部参数定义个数就用动态参数来连接内部参数。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
def func( * args): def func1(a,b,c,d): print (a,b,c,d) func1( * args) func( 1 , 2 , 3 , 4 ) def func( * args, * * kwargs): def func1(a,b,c,d = 6 ): print (a,b,c,d) func1( * args, * * kwargs) func( 1 , 2 , 3 ) |
以上是关于有参参数的主要内容,如果未能解决你的问题,请参考以下文章