【发布时间】:2017-11-17 13:49:35
【问题描述】:
我在 Python 中有一个函数,当第一次被调用时,它会将文件的内容读取到列表中并检查一个元素是否在该列表中。
def is_in_file(element, path):
with open(path, 'r') as f:
lines = [line.strip() for line in f.readlines()]
return element in lines
但是,当再次调用该函数时,不应再次读取文件的内容;函数应该记住第一次调用时 lines 的值。
有没有办法在再次调用函数时保留函数的上下文?我不想让lines 全局化,以免乱扔上述命名空间。我想这与使用生成器和yield 语句非常相似...
【问题讨论】:
-
似乎是
class的典型用例。
标签: python python-3.x function