返回列表或生成器的函数中的奇怪行为

时间:2018-01-02 10:24:33

标签: python python-3.x generator

在以下代码中,如果注释掉else块,则main函数中可迭代对象的类型为list。另一方面,如果我保留else代码(我认为无论如何都不应该执行),iterable变量将成为生成器。

def gimme_an_iterable():
    my_list = [1, 2, 2, 3, 4]
    if True:
        return my_list
    else:
        for i in my_list:
            yield i

if __name__ == '__main__':
    iterable = gimme_an_iterable()
    print(type(iterable))

我正在使用python3

0 个答案:

没有答案