ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • with는 왜 쓰는 것일까
    언어/파이썬 2021. 1. 12. 20:52

    with 는 정말 여러방면으로 쓰인다. 대표적인 예로는 파일을 입출력 할 때 많이 쓰이는 것을 알 수 있다. 그렇다면 with는 파일입출력만을 위해서 쓰이는 것일까? 그게 아니라면 어떻게 쓰이고 왜 쓰이는 것일까?

     

    1. 파일 입출력만을 위해 쓰인다.

    => 아니다. 우선 with를 어떻게 쓰는지 왜 쓰는지 알아야 빠른 이해가 된다. 

     

    2. with 는 왜 쓰이는 것일까?

    =>

    1. 파일을 다룰때 with 블록을 통해 명시적으로  close() 메소드를 호출하지 않고도 파일을 닫을 수 있다.

    2 파일을 닫을때는 파일 내부에 __exit__()가 구현되어있기 때문에 with 블록이 종료될때 자동으로 __exit__() 메소드가 호출되어 파일을 close 하게 된다.

    3.클래스를 호출할때도 사용된다.(단 2. 에서 말했듯이 클래스 안에 __enter__() 과 __exit__() 이 구현되어있어야 한다). 

    4.클래스에 쓰는 경우에는 클래스이름이 모호하거나 다분히 길다고 생각할 때 import numpy as np 처럼 줄일 수 있듯이 with .... as를 사용해서 줄일 수 있다.

    5.torch.no_grad() 에서와 같이 backpropagation을 모델의 어떤 부분에서는 하지 않고 싶을 때 사용하기도 한다. 즉 inner_scope 와 outer_scope를 나눌때 사용한다고 생각해도 된다.

     

    참고로 __enter__() 은 클래스가 생성되어서 시작할때 실행 되고 __exit__()은 클래스가 종료될때 실행되는 함수이다.

     

    '언어 > 파이썬' 카테고리의 다른 글

    == 와 is 의 차이  (0) 2021.01.13
    list 에서의 append 와 extend  (0) 2021.01.12
    최댓값과 최솟값  (1) 2021.01.12
    파이썬 내장함수들  (0) 2021.01.11
    정적메소드와 클래스메소드  (0) 2021.01.09

    댓글