我是一个新手程序员,我想创建一个生成器,它将返回两个值,我将在另一个函数中用作元组.
我不明白为什么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 …Run Code Online (Sandbox Code Playgroud)