我是python新手。请看这个剧本:
def myfunc(*args):
print len(args)
if args == 3:
for arg in args:
print arg
else:
print "exit"
a, b, c = 1, 2, 3
myfunc(a, b, c)
如您所见,传递给函数的参数数是3。现在条件args==3
是True
,但执行else
部分。另一方面,如果if
条件为false,则执行该部分代码并跳过{}。在
你能解释一下为什么if
语句是在错误条件下执行的吗?在
Tags:
您必须应用
len(args) == 3
而不是args == 3
,因为如果您使用args
,那么它是一个元组列表,如果您检查它,则必须转到else
条件。在此代码将给出预期的结果。在
不,
args == 3
是不是True
。你可能是说len(args) == 3
。在我想你一定是在做}:
len(args)==3
而不是{当
args==3
成为函数内部的元组时,args==3
永远不会为真。在因此,即使你传递了
myfunc(3)
,那么你也将匹配(3,)==3
,即False
。在相关问题 更多 >
编程相关推荐