2 回答
TA贡献1827条经验 获得超8个赞
试试这个,应该工作:
def third(*args):
if len(args) == 2:
word1, word2 = args
option = True
else:
option = False
word1 = args[0]
if option:
return word1, word2
else:
return word1, None
def hello(data, *args):
print("the data is:", data)
A, B = third(*args)
print("the args are:", A, B)
def world(small, *args):
return hello(small, *args)
if __name__ == "__main__":
world("data","prediction")
TA贡献1829条经验 获得超6个赞
基本上你正在传递 options=True 这意味着“第三个”函数应该总是返回 word1 和 word2。但是 args 的 len 是一个,因此根据您的 if len(args) == 2 条件,word2 不存在。
所以“第三个”函数只返回word1。在您的“hello”函数中,您试图通过 A, B =third(arguments) 方法将该单个元素映射到两个变量“A”和“B”,该方法迭代函数的返回值,但它无法这样做,因为第三是返回一个元素或一个错误值(因为您试图返回不存在的 word2)。这就是发生此错误的原因
添加回答
举报