Day5 - 07 函数的参数-参数组合
2024-09-06 00:50:56
现在我们学完了位置参数、默认参数、可变参数、关键字参数、命名关键字参数五种参数类型。
在Python中定义函数,可以使用这五种参数进行组合。
但是参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
在Python中定义函数,可以使用这五种参数进行组合。
但是参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
def f1(a, b, c=0, *pp, **kw):
print(a,b,c,pp,kw)
dd = [9,10,12,14,15,17,19,20]
dk = {'q':99, 'p':88}
f1(*dd,**dk)
print(a,b,c,pp,kw)
dd = [9,10,12,14,15,17,19,20]
dk = {'q':99, 'p':88}
f1(*dd,**dk)
9 10 12 (14, 15, 17, 19, 20) {'q': 99, 'p': 88}
def f2(a,b,c=0,*,job,hh):
print(a,b,c,job,hh)
dw = (1,2,3)
ww ={'job':'jj','hh':'HH'}
f2(*dw,**ww)
print(a,b,c,job,hh)
dw = (1,2,3)
ww ={'job':'jj','hh':'HH'}
f2(*dw,**ww)
1 2 3 jj HH
可以通过一个tuple和dict来调用函数。
def f3(a,b,c,*pp,host,words,**kw):
print(a,b,c,pp,host,words,kw)
pp1 = (1,2,3,4,5,6,7,8,9,0)
pp2 = {'host':'HH', 'words':'WW'}
pp3 = {'oo':'oooo', 'ppp':'pppppp'}
pp4 = {'host':'HH', 'words':'WW', 'oo':'oooo', 'ppp':'pppppp'}
f3(*pp1,**pp2,**pp3)
f3(*pp1,**pp4)
def f3(a,b,c,*pp,host,words,**kw):
print(a,b,c,pp,host,words,kw)
pp1 = (1,2,3,4,5,6,7,8,9,0)
pp2 = {'host':'HH', 'words':'WW'}
pp3 = {'oo':'oooo', 'ppp':'pppppp'}
pp4 = {'host':'HH', 'words':'WW', 'oo':'oooo', 'ppp':'pppppp'}
f3(*pp1,**pp2,**pp3)
f3(*pp1,**pp4)
1 2 3 (4, 5, 6, 7, 8, 9, 0) HH WW {'oo': 'oooo', 'ppp': 'pppppp'}
1 2 3 (4, 5, 6, 7, 8, 9, 0) HH WW {'oo': 'oooo', 'ppp': 'pppppp'}
实际上,对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数时如何定义的。
1 2 3 (4, 5, 6, 7, 8, 9, 0) HH WW {'oo': 'oooo', 'ppp': 'pppppp'}
实际上,对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数时如何定义的。
虽然可以组合多达5中参数与, 但不要同时使用太多的组合,否则函数接口的可读性和可理解性都会非常差。
练习:
以下函数允许计算两个数的乘积,请稍加改造,变成可接收一个或多个数并计算乘积:
def product(x, y):
return x * y
-------------------------------------
def pro(*x,y=1):
s = 1
for i in x:
s = i * s
print( s*y )
def pro(*x,y=1):
s = 1
for i in x:
s = i * s
print( s*y )
最新文章
- basic use of sidekiq (2)
- [UOJ30/Codeforces Round #278 E]Tourists
- jQuery选择器方式-用的不多的name选择器
- GNU风格 汇编语法总结(转)
- 毕业论文endnote使用
- WTL安装
- Java Object 对象创建的方式 [ 转载 ]
- FT View SE联合Studio 5000仿真
- SVM原理 (转载)
- APP研发录笔记
- myeclipse编写servlet
- 懒人小工具:T4生成实体类Model,Insert,Select,Delete以及导出Excel的方法
- 斯坦福CS231n学习--初识
- LeetCode--429--N叉树的层序遍历
- 洛谷 P4568 [JLOI2011]飞行路线 解题报告
- ASP输出JSON数据及客户端jQuery处理方法
- cron,at的权限控制
- linq的语法和案例
- Android intel X86 图像渲染
- 尚学堂的一个用了ExtJs的页面代码