看完18章以后,发现第一个练习中,使用了*args读取全部的的输入参数作为一个元组,但是在他的练习中只给了两个变量去赋值,当用户不清楚这个函数的定义时,就可能会给出过多的变量进这个函数,那么就会出现如下错误:
ValueError: too many values to unpack
也就是所谓的解包错误,给出的值太多了。
那么为了杜绝这种情况,我取巧解决了下。就是我把元组改变成一个列表,然后补了2位进去。
如果他给的变量少了也没关系,我能补齐。可能太搓了,以后有好的思路再来补齐。
def print_two(*args):
all_args = list(args) + [None,None]
need_var = all_args[0:2]
arg1,arg2 = need_var
print "arg1:%r, arg2: %r" %(arg1,arg2) print_two(1,"hello",3)