鱼C论坛

 找回密码
 立即注册
查看: 1614|回复: 2

[已解决]关于函数内可变参数的问题

[复制链接]
发表于 2018-8-6 18:38:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def greeting(args1, *tupleArgs, **dictArgs):
    print(args1)
    print(tupleArgs)
    print(dictArgs)
names = ['HTY', 'LFF', 'ZH']
info = {'schoolName' : 'NJRU', 'City' : 'Nanjing'}
greeting(*names,'Hello,',**info)

以上程序的输出结果如下
HTY

('LFF', 'ZH', 'Hello,')

{'schoolName': 'NJRU', 'City': 'Nanjing'}

4个问题:
为什么Hello,会在第二行和names中的字符串组合?
('LFF', 'ZH', 'Hello,')为什么是元组形式输出?而第三行结果还是保持字典形式
greeting(*names,'Hello,',**info)变成greeting(*names,**info, 'Hello,')就会报错,这是为什么?
函数不能调用未实现的函数,什么是未实现的函数?
最佳答案
2018-8-6 19:13:33
第一个问题,因为arg1只输出一个字符串,所以它只读取到了,HYT,arg1的意思是名字(字符串)
第二个因为你写的是tupleArgs,tuple是元组,它会将name变量剩下的与'hello,' 组成一个元组输出。
第三个因为参数dictArgs 必须为字典。字典就必须要有key和value,这里只有一个字符串,所以报错。
第四个,未实现的函数应该是没有被定义的函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-6 19:13:33 | 显示全部楼层    本楼为最佳答案   
第一个问题,因为arg1只输出一个字符串,所以它只读取到了,HYT,arg1的意思是名字(字符串)
第二个因为你写的是tupleArgs,tuple是元组,它会将name变量剩下的与'hello,' 组成一个元组输出。
第三个因为参数dictArgs 必须为字典。字典就必须要有key和value,这里只有一个字符串,所以报错。
第四个,未实现的函数应该是没有被定义的函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-7 10:17:07 | 显示全部楼层
多谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-30 18:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表