Python 用于文件读取的生成器函数,将对象类型返回为常规函数

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

我试图创建一个生成器函数来逐行返回.csv文件的内容,虽然生成器函数似乎不适合我使用for循环来循环它,但当我打印生成器函数的对象类型时,它返回类“function”,而不是返回类“generator”。生成器功能还具有与其作为生成器功能一致的内存大小

功能代码:

    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>