论坛首页
精选版块
移动开发
iOS
Android
Qt
WP
云计算
IaaS
Pass/SaaS
分布式计算/Hadoop
Java技术
Java SE
Java Web 开发
Java EE
Java其他相关
.NET技术
.NET Framework
C#
.NET分析与设计
ASP .NET
VB .NET
Web开发
PHP
JavaScript
ASP
HTML(CSS)
HTML5
Apache
开发语言/框架
Delphi
VC/MFC
VB
C/C++
C++ Builder
其他开发语言
数据库开发
MS-SQL Server
Oracle
PowerBuilder
Informatica
其他数据库开发
硬件/嵌入式开发
嵌入开发(WinCE)
驱动开发/核心开发
硬件设计
单片机/工控
汇编语言
VxWorks开发
Linux/Unix社区
系统维护与使用区
应用程序开发区
内核源代码研究区
驱动程序开发区
CPU和硬件区
论坛牛人
排行榜
论坛地图
我要发贴
论坛帮助
CSDN论坛
>
其他开发语言
>
脚本语言(Perl/Python)
小白求问函数类型
[问题点数:50分,结帖人u014008391]
收藏帖子
回复
⋅
请问如何快速画UI?
⋅
小白求问函数类型
⋅
好像对最基本的if都理解有误了……
更多帖子
关注
空间
博客
4oclhashcat
本版专家分:0
结帖率 77.78%
在Python中定义函数……但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
def f2(a, b, c=0, *, d, **kw):
print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
在f2中,可变参数(f2视为空)* 与命名关键字参数 **kw之间多了一个d,请问这个怎么解释呢
0
2018-11-10 18:30:04
回复数
9
只看楼主
引用
举报
楼主
⋅
pyqt 获取网格里面选中的值
⋅
pyqt 获取网格里面选中的值
⋅
PHP Warning: SQLite3::query(): unable to open database file in
更多帖子
关注
空间
博客
ksx_120999
本版专家分:245
你是不是哪里搞错了,第一个*和d之间的那个逗号应该是不存在的,否则,你的那个c=0的赋值就不应该在中间了。
至少我是没有遇到过。
0
2018-11-11 19:56:33
只看TA
引用
举报
#1 得分 0
⋅
此用户还没有发表过任何帖子
关注
空间
博客
JJandYY135
本版专家分:150
你理解错了,你再好好看看廖雪峰那个网站,不是多了一个d,而是因为这个d在*后面,所以这个d是命名关键字参数。*后面的参数叫做命名关键字参数(也就是你调用f2()的时候必须传递这个参数,并且必须的这么写:d=xxx),**kw是关键字参数。
0
2018-11-12 09:53:13
只看TA
引用
举报
#2 得分 100
⋅
检讨一下自己:
⋅
得了一本《机器人自动化:建模、仿真与控制》,特来感谢
⋅
小偷入室盗窃却被狗咬死,狗主人要负责吗?
更多帖子
关注
空间
博客
欢乐的小猪
本版专家分:2088
黄花
2018年5月 其他开发语言大版内专家分月排行榜第二
2014年4月 扩充话题大版内专家分月排行榜第二
蓝花
2014年3月 扩充话题大版内专家分月排行榜第三
def f2(a, b, c=0, *, d, **kw):
这个应该是
def f2(a, b, c=0, *d, **kw):
0
2018-11-12 10:26:10
只看TA
引用
举报
#3 得分 0
⋅
此用户还没有发表过任何帖子
关注
空间
博客
qq_42787416
本版专家分:0
*变量名1:表示收集多余的位置传参,**变量名2:收集多余的字典传参,只有一个*表示,后面的参数在传参时,必须要关键字传参。所以d在调用函数时,必须采用关键字传参的方式。里面还有一个问题。那就是c的位置不对,c为缺省参数,必须在最右边,
0
2018-11-12 17:05:12
只看TA
引用
举报
#4 得分 0
⋅
此用户还没有发表过任何帖子
关注
空间
博客
JJandYY135
本版专家分:150
引用 3 楼 欢乐的小猪 的回复:
def f2(a, b, c=0, *, d, **kw):
这个应该是
def f2(a, b, c=0, *d, **kw):
这两个意思不一样:
第一个*,d表示命名关键字参数,
第二个*d表示可变参数。
0
2018-11-12 18:37:10
只看TA
引用
举报
#5 得分 0
khq溪风
本版专家分:0
没有单独一个星号*作为参数的吧,星号要与变量一块的*params
0
2018-11-14 09:27:27
只看TA
引用
举报
#6 得分 0
⋅
此用户还没有发表过任何帖子
关注
空间
博客
堕落恶魔_Delphi
本版专家分:50
首先这个定义没有问题, 单独的*是可以使用的, 这时候*的作用不是表示参数, 而是表示其后面的参数必须使用关键字传入
所以你这个函数的调用是这样的
f2('a', 'b', 1, d = 'aa', m = 1, n = 2)
输出结果
a = a b = b c = 1 d = aa kw = {'m': 1, 'n': 2}
0
2018-11-14 09:53:06
只看TA
引用
举报
#7 得分 0
smith6036
本版专家分:0
*以后的参数传参必须使用d=4这种格式
0
2018-12-04 15:36:52
只看TA
引用
举报
#8 得分 0
wopabe
本版专家分:88
指针的指针?
0
2018-12-04 16:10:21
只看TA
引用
举报
#9 得分 0
收藏帖子
登录
注册
+
匿名用户不能发表回复!
×
New message