from shapes.area import square에서 'square'만 가져오는 게 아니고 'from shapes.area'가 중점이여서 area모듈이 다 가져와지는 거였나 보군요..! 이제 궁금증이 풀린 것 같습니다 너무너무 감사드립니다!!!
+0
2023년 10월 4일
from shapes.are import square만 사용하면 square만 가져오는 게 맞습니다. 이 상태에선 shapes.area.circle(2) 를 실행하면 실행이 되지 않습니다. 그런데 from shapes.area import square 이후 import shapes를 하게 되면 shapes 하위의 모듈을 다 가져오는 것으로 확인됩니다. 저도 답변 달아주신 것처럼 from shapes.area를 하면 다 가져와지는 걸까 싶었는데그건 아니었고 이후 import shapes와 같이 더 상위 모듈을 가져왔을 때 이미 가져왔던 하위 모듈의 전부를 가져오는 것처럼 보였습니다. 이게 깔끔하게 정리되지 않는 것은 조금 꼬여있기 상황이기 때문이라고 생각합니다. shapes/__init__.py에 조금 더 명확하게 정의하시면서 정리해보시면 좋겠습니다.
__init__에 아무것도 없어서 그럼 문제가 되었을 겁니다. import shape이라고 하면 shape은 .py파일이 아니기 때문에 __init__.py 파일을 접근하게 됩니다. 그런데 __init__.py 파일 안에 area.py나 volume.py가 import되어 있지 않기 때문에 import shape만으로 shape.area 또는 shape.volume은 불가능 합니다.shape/__init__.py에 import area과 import volume을 해보세요.
+0
2023년 10월 3일
아직 __init__ 활용법에 대해 나오지 않은 강의 였고, '__init__에 import문을 써주지 않았기 때문에 import shapes 만 한 경우 shape.area.circle이 안 될거다' 라는 걸 설명해주는 부분이었습니다
+0
2023년 10월 3일
근데 저는 위에 보시다 싶이 import shpaes만 했는데 shapes.area.circle이 호출되었고 이에 대해 왜 정상작동한 건지 궁금합니다!
댓글 3개