首页 问答 执行以下Python3程序,下列说法中,错误的是()
问题详情

deffn(a,b):

returna+b
lst=[1,2]
f=fn(*lst)
print(f)
A
函数fn的参数a和b都是位置参数
B
不能使用参数解包来将列表或元组中的元素传递给函数
C
语句print(f)的输出结果为3
D
程序不会抛出异常

回答

Python支持使用星号(*)操作符对列表或元组进行参数解包(unpacking),将元素作为位置参数传递给函数。
程序中fn(*lst)将列表lst解包为fn(1, 2),完全合法且正确。因此,该说法错误。

斜杠(/)用于分隔仅位置参数(左侧必须位置传递)

星号(*)用于分隔仅关键字参数(右侧必须关键字传递)

未使用/:无强制限制,参数默认允许位置或关键字传递。

两者可组合使用:

def func(a, /, b, *, c): # a仅位置,b位置或关键字,c仅关键字
  pass

正确答案:B

fn(*lst) # 等价于 fn(1, 2),是Python的标准特性

版权:言论仅代表个人观点,不代表官方立场。转载请注明出处:https://www.stntk.com/question/196.html

发表评论
暂无评论

还没有评论呢,快来抢沙发~

点击联系客服

在线时间:8:00-16:00

客服QQ

70068002

客服电话

400-888-8888

客服邮箱

70068002@qq.com

扫描二维码

关注微信公众号

扫描二维码

手机访问本站