Pregunta once de la entrevista de Python (¿qué es el contexto? ¿Con el principio del administrador de contexto?)

  • with se usa a menudo para abrir archivos, el uso de with se puede cerrar automáticamente incluso si se produce un error
  • ¿Qué es el contexto?
    • El contexto es realmente contundente, y el contexto del artículo es un significado, en un poco más popular, creo que el entorno es mejor
    • Aunque el contexto se llama contexto, generalmente es solo lo anterior en el programa, pero es solo una buena llamada al contexto. .
    • Hay altibajos en la interrupción del proceso en el sistema operativo, pero no profundice en esta pregunta profunda.
    • Cualquier objeto que implemente los métodos enter () y exit () puede llamarse un administrador de contexto. El
      objeto de administrador de contexto puede usar la palabra clave with. Obviamente, el objeto de archivo también implementa el administrador de contexto.
  • Entonces, ¿cómo implementan los objetos de archivo estos dos métodos? Podemos simular e implementar una clase de archivo propia y
    dejar que la clase implemente los métodos enter () y exit ().
class File():

    def __init__(self, filename, mode):
        self.filename = filename
        self.mode = mode

    def __enter__(self):
        print("entering")
        self.f = open(self.filename, self.mode)
        return self.f

    def __exit__(self, *args):
        print("will exit")
        self.f.close()
        
# __enter__() 方法返回资源对象,这里就是你将要打开的那个文件对象,
# __exit__() 方法处理一些清除工作。

with File('out.txt', 'w') as f:
    print("writing")
    f.write('hello, python')
    
# 你就无需显示地调用 close 方法了,由系统自动去调用,哪怕中间遇到异常 close 方法也会被调用。

Publicado 44 artículos originales · me gusta 0 · visitas 1226

Supongo que te gusta

Origin blog.csdn.net/weixin520520/article/details/105451434
Recomendado
Clasificación