11월, 2021의 게시물 표시

__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 모듈 형식으로 현재 패키지에서 모듈을 가져오게 만어야 한다.  참고로 .은 현재 패키지라는 뜻이다.