__init__.py 역할

Deep Learning and the Game of Go 

시작하자마자 벽에 막혔다.

3.4 봇만들기에서 naive.py 구현 후 bot_v_bot.py 실행하면 된다고 하는데

가벼운 마음으로 실행했는데 에러 발생.

Attributeerror module 'dlgo.agent' has no attribute 'naive'


뭔가 naive 불어오는 과정에서 문제가 있는 것 같아서 import문을 요리조리 수정해도 모두 실패.

github에 가서 소스를 받아와서 비교해봐도 차이를 발견하지 못함.


책에서 패키지 관련 설정 부분 중 __init__.py 파일에 관한 부분이 있어서 

github와 비교하다보니 agent 패키지의 __init__.py 차이 발견.

github의 __init__.py에는 from .naive import *  구분이 존재.


관련 내용 은 아래 정리

파이썬 코딩 도장 중 45.4 패키지에서 from import 응용하기 중 __init__.py 역할

 1. 폴더가 패키지로 인식되도록 하는 역할

2. 패키지를 초기화 하는 역할,

 즉 import로 패키지를 가져오면 __init__.py 파일이 실행되므로 여기에

from  . import 모듈 형식으로 현재 패키지에서 모듈을 가져오게 만어야 한다. 

참고로 .은 현재 패키지라는 뜻이다. 


댓글

이 블로그의 인기 게시물

파이참에서 인터프리터 꼬인 경우 처리

경사소실 문제 해결

근무 시작시간과 근무시간 입력 받아 근무 종료시간 반환하는 함수