例如,有一个文本文件,其中包含从0到9的数字:
0123456789
使用以下函数,我想要得到如下输出:
这意味着,每次调用该函数时,它都会返回下一个数字。
以下是我的函数:
所以,如何创建一个函数,在每次调用时返回逐个字符?
0123456789
使用以下函数,我想要得到如下输出:
>>> print_char('filename')
0
>>> print_char('filename')
1
>>> print_char('filename')
2
.
.
.
>>> print_char('filename')
9
这意味着,每次调用该函数时,它都会返回下一个数字。
以下是我的函数:
def print_char(filename):
f = open(filename, 'r')
while True:
char=f.read(1)
if not char:
break
print(char)
...以及我得到的输出:
>>> print_char('filename')
0
1
2
3
.
.
.
9
所以,如何创建一个函数,在每次调用时返回逐个字符?
print_char
函数的调用之间共享状态(已读取的字符数量或仅打开的文件)。虽然可以使用全局变量实现此目的,但这种方法被认为是糟糕的设计。你真的需要带有这种行为的自由函数print_char
吗? - rutskyx = Reader('filename'); x.next(); x.next() ...
会更好。 - Jonathon Reinhartnext(x)
。 - Antti Haapala -- Слава Україні