请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

args 和 *args的真正区别在哪里,请老师解释下下面代码不能运行的原因。以及type(args)是元组,type(*args)又是什么?

def test(x,y):
    print(x+y)

def demo(*args):
    test(*args)
# 可以成功运行
# test(args) 不可以成功运行

demo(1,2)


正在回答 回答被采纳积分+3

2回答

7七月 2018-02-24 20:38:11

*号只能用于定义形参,你怎么发明的可以用来传参?建议学习尝试代码要有根据,而不是自己发明这些用法。他之所以报错是因为解释器根本就不认识啊。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕数据3541479 #1
    如果不能用来传参,那不应该test(*args)不能运行嘛?而这里是test(args)不能运行啊?
    回复 有任何疑惑可以回复我~ 2018-02-24 22:17:44
  • 7七月 回复 提问者 慕数据3541479 #2
    test(args_)不能运行?怎么可能。。。是不是哪里写错了?
    回复 有任何疑惑可以回复我~ 2018-02-24 22:28:48
  • 提问者 慕数据3541479 回复 7七月 #3
    真哒是这样啊,test(args)会报错如下:
    TypeError: test() missing 1 required positional argument: 'y'
    回复 有任何疑惑可以回复我~ 2018-02-24 22:34:19
提问者 慕数据3541479 2018-02-24 19:46:40

我记得之前调用多参数时都是直接调用args的,例如print(args)或type(args),为什么这里test(args)同样作为函数调用却不可以

0 回复 有任何疑惑可以回复我~

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信