【问题标题】:Generator function for file reading returning object type as regular function用于文件读取的生成器函数将对象类型作为常规函数返回
【发布时间】:2021-02-27 08:49:08
【问题描述】:

我正在尝试创建一个生成器函数来逐行返回 .csv 文件的内容,而生成器函数似乎是可迭代的,当我打印生成器函数的对象类型,而不是返回类“生成器”,而是返回类“函数”。生成器函数还具有与其作为生成器函数一致的内存大小。

功能代码:

    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.05980682373046875

【问题讨论】:

    标签: python python-3.x function iterator generator


    【解决方案1】:

    file_row_generator 是一个返回生成器的函数。试试print(file_row_generator())

    >>> def foo():
    ...     for i in range(3):
    ...             yield i
    ... 
    >>> print(foo)
    <function foo at 0x7fd3cedaa310>
    >>> print(foo())
    <generator object foo at 0x7fd3ced88660>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 2022-12-18
      • 2022-11-17
      • 1970-01-01
      相关资源
      最近更新 更多