python中函数和函数式编程
1. 如何定义函数
2.位置参数和关键字参数
请看例子:
def funx(x,y,z):
print(x,y,z)
funx(1,'Hello',True)
funx(z='he',y='is',x='boy')
运行结果:
F:\untitled2\venv\Scripts\python.exe F:/untitled2/chinese/demo1.py
1 Hello True
boy is he
3.函数
*,**支持任意你输入的数
需要注意:
在定义函数时,*和**是收集参数
( def fun(*args,**kwargs),arge,kwargs这2个量可以变,不过一般习惯使用这2个量)
-
对于 * :
用元组收集不匹配的位置参数
-
对于 ** :
用字典收集不匹配的位置参数
在调用函数时,*和**是对参数解包
(fun(*args,**kwargs)
-
对于 * :
把一个集合打散成多个参数
-
对于 ** :
把一个字典打散成多个独立的关键字参数
实例:
def fun(x,y,z,*args,**kwargs):
print(x,y,z)
print(args)
print(kwargs)
# 函数调用
fun(1,3,4,5,6,7,4,2)
fun(1,2,3,a=1,b='adc',c='HELLO')
1 3 4
(5, 6, 7, 4, 2)
{}
1 2 3
()
{'a': 1, 'b': 'adc', 'c': 'HELLO'}
说明:
-
x=[1,2,3] fun(x[1],x[2],x[3])可以输出1,2,3.
-
x=[1,2,3] fun(x) 会报错,但是可以改为fun(*x),同样可以输出结果.
-
y={'a':1,'b':'abc','c':'HELLO' fun(y) 会报错,但是可以改为fun(**y)
4.函数定义及调用样式
定义函数语法 | 说明 |
---|
def func(a,b) | 常规参数 |
def func(a=1,b=‘abc’) | 默认参数 |
def func(,a,b,*args) | 用元组收集除a,b的位置参数 |
def func(a,b,**kwargs) | 用字典收集的关键字参数 |
def fun(*args,**kwargs | 分别收集位置参数和关键字参数 |
调用函数语法 | 说明 |
---|
func(a,b) | 按照位置进行匹配 |
func(name=value’) | 按照关键字(变量名)匹配 |
func(*list) | 把list 打散,作为位置参数传递 |
func(**dict) | 把字典打散,作为关键字参数传递 |
fun(*args,**kwargs | 位置参数和关键字参数分别传递 |