Python 用于文件读取的生成器函数,将对象类型返回为常规函数
我试图创建一个生成器函数来逐行返回.csv文件的内容,虽然生成器函数似乎不适合我使用for循环来循环它,但当我打印生成器函数的对象类型时,它返回类“function”,而不是返回类“generator”。生成器功能还具有与其作为生成器功能一致的内存大小 功能代码:Python 用于文件读取的生成器函数,将对象类型返回为常规函数,python,python-3.x,function,iterator,generator,Python,Python 3.x,Function,Iterator,Generator,我试图创建一个生成器函数来逐行返回.csv文件的内容,虽然生成器函数似乎不适合我使用for循环来循环它,但当我打印生成器函数的对象类型时,它返回类“function”,而不是返回类“generator”。生成器功能还具有与其作为生成器功能一致的内存大小 功能代码: import sys, time start_time = time.time() def file_row_generator(): for row in open('file.cs
import sys, time
start_time = time.time()
def file_row_generator():
for row in open('file.csv'):
yield row
print(file_row_generator)
print(type(file_row_generator))
print(sys.getsizeof(file_row_generator))
l = []
for row in file_row_generator():
l.append(row)
print(time.time() - start_time)
这将返回输出:
68
0.0598068237046875是一个返回生成器的函数。尝试打印(文件行生成器())
>>def foo():
... 对于范围(3)中的i:
... 产量一
...
>>>打印(foo)
>>>打印(foo())
>>> def foo():
... for i in range(3):
... yield i
...
>>> print(foo)
<function foo at 0x7fd3cedaa310>
>>> print(foo())
<generator object foo at 0x7fd3ced88660>