确定for循环是在迭代列表还是生成器

Kev*_*rke 0 python

有没有办法告诉你是否在python中迭代列表或生成器?

for i in range(10):
     print some_param     # will identify as a list

for i in xrange(10):
     print some_param     # will identify as a generator
Run Code Online (Sandbox Code Playgroud)

Ben*_*son 6

一般来说,没有.你可以做一些令人不愉快的事情,比如isinstance(my_iterable, type(iter(xrange(1))))vs isinstance(my_iterable, type(iter([]))),但是使用裸迭代器接口,生成器和列表对于他们的客户来说是无法区分的.