init => 초기화(initialize) 메서드 ( init은 초기화 함수지 생성자함수가 아니다.)
elf와 나란히 클래스 내에 등장하는 init에 대해서는 알아보자. init에 대해 간단히 정리하자면, 다음과 같다.
컨스트럭터라고 불리는 초기화를 위한 함수(메소드)
인스턴스화를 실시할 때 반드시 처음에 호출되는 특수한 함수
오브젝트 생성(인스턴스를 생성)과 관련하여 데이터의 초기를 실시하는 함수
name => _name 특성을 모듈의 정규화된 이름으로 설정해야 합니다. 이 이름은 가져오기 시스템에서 모듈을 고유하게 식별하는 데 사용됩니다. , interpreter가 실행 전에 만들어 둔 글로벌 변수입니다.
main => name_ == 'main_' 식을 사용하여 확인할 수 있는 프로그램의 최상위 환경 이름, 파이썬 패키지의 _main.py 파일.
결과적으로 모듈은 자체 __name_을 확인하여 최상위 환경에서 실행 중인지 여부를 확인할 수 있으며, 이 경우 모듈이 가져오기 명령문에서 초기화되지 않았을 때 코드를 조건부로 실행하는 일반적인 관용구를 사용할 수 있습니다.
일부 모듈에는 명령줄 인수를 구문 분석하거나 표준 입력에서 데이터를 가져오는 것과 같이 스크립트 전용 코드가 포함되어 있습니다. 예를 들어 유닛 테스트를 위해 이와 같은 모듈을 다른 모듈에서 가져오면 스크립트 코드도 의도하지 않게 실행됩니다.
여기서 if name_ == 'main__' 코드 블록을 사용할 수 있습니다. 모듈이 최상위 환경에서 실행되지 않으면 이 블록 내의 코드가 실행되지 않습니다.
name_ == 'main__'인 경우 아래 블록에 가능한 적은 수의 문을 추가하면 코드의 명확성과 정확성을 향상시킬 수 있습니다. 대부분의 경우 main이라는 함수는 프로그램의 기본 동작을 캡슐화합니다.
파이썬의 코드 실행 방식
들여쓰기를 통해 코드 실행의 레벨을 결정한다.
main이 존재하지 않는다.
출처: https://engineer-mole.tistory.com/190
https://medium.com/@chullino/if-name-main-%EC%9D%80-%EC%99%9C-%ED%95%84%EC%9A%94%ED%95%A0%EA%B9%8C-bc48cba7f720
https://docs.python.org/3/library/__main__.html?highlight=__main__#module-__main__
'Python > Context' 카테고리의 다른 글
String으로 메소드 호출 (0) | 2021.11.11 |
---|---|
typing 함수 (0) | 2021.10.19 |