文件读取返回对象类型的生成器函数作为常规函数
Generator function for file reading returning object type as regular function
我正在尝试创建一个生成器函数来逐行 return .csv 文件的内容,而生成器函数似乎是可迭代的,我可以用 for 循环遍历它循环,当我打印生成器函数的对象类型时,不是 returning class 'generator',而是 returns class 'function'。生成器函数也有一个内存大小与它是一个生成器函数一致。
函数代码:
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)
这 return 的输出:
<函数 file_row_generator 在 0x00F3BC40>
68
0.05980682373046875
file_row_generator
是一个函数,returns 是一个生成器。试试 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>
我正在尝试创建一个生成器函数来逐行 return .csv 文件的内容,而生成器函数似乎是可迭代的,我可以用 for 循环遍历它循环,当我打印生成器函数的对象类型时,不是 returning class 'generator',而是 returns class 'function'。生成器函数也有一个内存大小与它是一个生成器函数一致。
函数代码:
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)
这 return 的输出:
<函数 file_row_generator 在 0x00F3BC40>
68
0.05980682373046875
file_row_generator
是一个函数,returns 是一个生成器。试试 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>