Вот моя версия, которая также предоставляет writelines () и fileno ():
class FlushFile(object):
def __init__(self, fd):
self.fd = fd
def write(self, x):
ret = self.fd.write(x)
self.fd.flush()
return ret
def writelines(self, lines):
ret = self.writelines(lines)
self.fd.flush()
return ret
def flush(self):
return self.fd.flush
def close(self):
return self.fd.close()
def fileno(self):
return self.fd.fileno()
Haskell: intersperse
Zip
обычно означает другую операцию ( zip [a, b, c] [x, y, z] = [( a, x), (b, y), (c, z)]
)
Это немного похоже на string.Join (), хотя Join не возвращает реальный список.
Похоже на застежку-молнию (англ. - zip) с данными на длинной стороне и разделителем на другой: -)
В Clojure это также называется вставкой.
user> (interpose "," ["a" "b" "c"])
("a" "," "b" "," "c")