我是一名新手程序员,想要创建一个生成器,可以返回两个值,我会将其作为元组在另一个函数中使用。
我不理解为什么 tuple(function_1(a,b))
返回 ((1,2),)
而 tuple(function_2(a,b))
会返回正确的元组。
我想知道发生了什么,最佳语法是什么,最终是否可能从 function_1
中检索到一个元组。
感谢您提前的任何解释!
>>> def function_1(a,b):
... yield a,b
...
>>> def function_2(a,b):
... yield a
... yield b
...
>>> a = 1
>>> b = 2
>>>
>>> function_1(a,b)
<generator object function_1 at 0x1007931b0>
>>> function_2(a,b)
<generator object function_2 at 0x1007931f8>
>>> tuple(function_1(a,b))
((1, 2),)
>>> tuple(function_2(a,b))
(1, 2)
>>> for item in function_1(a,b):
... print(item)
...
(1, 2)
>>> for item in function_2(a,b):
... print(item)
...
1
2
(1, 2)
的元组吗? - Martijn PietersFunction_1
返回的是元组,而Function_2
返回的是整数。 - Carcigenicate(a,b)
的序列,而第二个生成器的结果是包含两个元素a
和b
的序列。 - skyking