| 查看: 2283 | 回复: 6 | ||||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||||
tuburfransth金虫 (正式写手)
|
[求助]
这段Python代码中sep是什么类型的参数?
|
|||
|
代码如下: def concat(*args, sep = '/'): return sep.join(args) 调用: concat('earth', 'mars', 'venus') 输出: ‘earth/mars/venus’ 请问,函数concat定义中的sep参数是哪种参数,是默认参数还是关键字参数? 我的疑问:如果是关键字参数,但是关键字参数是不能放在可变参数之后的;而如果是关键字参数,为什么函数调用时没有为该参数赋值? |
» 猜你喜欢
自荐读博
已经有8人回复
投稿Elsevier的杂志(返修),总是在选择OA和subscription界面被踢皮球
已经有8人回复
自然科学基金委宣布启动申请书“瘦身提质”行动
已经有4人回复
求个博导看看
已经有18人回复
» 本主题相关价值贴推荐,对您同样有帮助:
校园网如何自动登陆(仅限于本人学校的校园网哟)
已经有2人回复
想使用python的VODE微分方程求解器,但python的安装太不人性化了,请高手指点~~
已经有1人回复
假如女人是一种编程语言
已经有7人回复
百度文库里的,转给大家看看,Python的学习
已经有12人回复
在vasp官方论坛看到一段如下代码,不知道如何使用,请各位指教
已经有5人回复
【转帖】GTK+ 3.0终于发布咯
已经有0人回复
月只蓝
主管区长 (职业作家)
-

专家经验: +1059 - 应助: 1712 (讲师)
- 贵宾: 8.888
- 金币: 68121.7
- 散金: 1938
- 红花: 443
- 沙发: 4
- 帖子: 4373
- 在线: 3291.4小时
- 虫号: 1122189
- 注册: 2010-10-14
- 专业: 宇宙学
- 管辖: 计算模拟区

2楼2017-02-24 11:27:13
月只蓝
主管区长 (职业作家)
-

专家经验: +1059 - 应助: 1712 (讲师)
- 贵宾: 8.888
- 金币: 68121.7
- 散金: 1938
- 红花: 443
- 沙发: 4
- 帖子: 4373
- 在线: 3291.4小时
- 虫号: 1122189
- 注册: 2010-10-14
- 专业: 宇宙学
- 管辖: 计算模拟区

4楼2017-02-24 12:53:06
月只蓝
主管区长 (职业作家)
-

专家经验: +1059 - 应助: 1712 (讲师)
- 贵宾: 8.888
- 金币: 68121.7
- 散金: 1938
- 红花: 443
- 沙发: 4
- 帖子: 4373
- 在线: 3291.4小时
- 虫号: 1122189
- 注册: 2010-10-14
- 专业: 宇宙学
- 管辖: 计算模拟区
★ ★
jjdg: 金币+2, 谢谢 2017-02-24 20:30:10
jjdg: 金币+2, 谢谢 2017-02-24 20:30:10
|
应该是版本问题。 在python2.5中,你给的代码: 因为关键字不能放在可变参数之后,会报语法错误,需将定义函数时的参数列表改为:(sep = '/',*args),完整定义为: 且在调用concat时,需要按类似于以下的方式处理: concat('/','earth', 'mars', 'venus') concat('.','earth', 'mars', 'venus') 因为在调用时,关键字参数应当放在默认参数的后面,所以下面的方式是不可行的: concat(sep='/','earth', 'mars', 'venus') #不可行 以下这种方式也是不可行的: concat('earth', 'mars', 'venus',sep='/') #不可行 因为这种调用方式,参数sep有歧义。 也就是说,在比例的情况下,在python2.5中,尽管sep被定义为关键字参数,在实际调用时,只能以默认参数的形式调用。 在Python3.5.2中,原代码: 和 都是符合语法的。 对于第一种定义方式,调用 concat('earth', 'mars', 'venus') concat('earth', 'mars', 'venus',sep='/') concat('earth', 'mars', 'venus',sep='+') 均是合法的。 对于第二种定义方式,即便是在Python3.5.2中,尽管sep被定义为关键字参数,在实际调用时,还是只能以默认参数的形式调用: concat('/','earth', 'mars', 'venus') 显然第一种定义方式更为灵活,但Python2.5.2并不支持这种写法。 总之,参数sep属于关键字参数是肯定的。 |
» 本帖已获得的红花(最新10朵)

6楼2017-02-24 15:55:31







回复此楼
tuburfransth