0
with
문 범위를 벗어나기 전에 클래스의 인스턴스가 무언가를 수행하도록 재정의 할 수있는 클래스 속성이 있습니까?클래스가`with` 문을 종료 할 때 작업을 수행하도록 만들기
with open(PATH, 'wb') as f:
f.write("SOME TEXT")
이 같은 클래스의 평생 지속 작가를 필요로하는 클래스를 썼다면 :
예를 들어, 우리는 우리가 함께 할 때 우리는 파일 핸들을 닫는 것이 보장 할 수 있습니다 :
with MyWriter(PATH) as mw:
mw.write("SOME TEXT")
:
class MyWriter(object):
def __init__(self, path):
self.f = open(path, 'wb')
self.buffer = ''
def write(self, text):
self.buffer += text
# Just a toy example, naively relying on file system
# page cache should outperform this
if len(self.buffer) >= 4096:
self.flush()
def flush(self):
f.write(self.buffer)
self.buffer = ''
def close(self):
self.flush()
self.f.close()
는 내가 with
의 범위를 종료하기 전에 .close()
와 플러시 전화를 강제로 싶습니다