일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 정답
- 포매팅
- 답안
- 미국주식
- 청탁금지법
- AAA 건전지
- 파이썬 입문
- 후기
- 안전관리
- 산업안전보건법
- 산안법
- 제어문
- 삼성카드
- 미국 경제이벤트
- 파이썬 모듈
- 내돈내산
- 자료형
- 12월 미국 경제이벤트
- FOMC
- 위험성평가
- 파이썬
- 실업수당청구건수
- 파이썬 import
- 1월 첫째주 경제이벤트
- 대상
- 해외직구
- 중대재해처벌법
- 충전식 건전지
- 소비자물가지수
- aa 건전지
- Today
- Total
영감이 번뜩이는 삶
[파이썬 입문] 패키지 본문
패키지는 보통 묶음이나 덩어리 정도의 뜻으로 알려져있어유 그에 맞게 파이썬의 패키지도 비슷하게 생각하면 돼유
패키지는 디렉토리(폴더)와 파일(모듈)로 이뤄져있어유
간단하게 보자면 이런 식인거쥬
각 디렉토리에 __init__ 파일과 하위 디렉토리 그리고 모듈 기타 등등이 있는거에유
어떤 구조로 이루어진지 알았으니 예시를 통해 설명해나갈께유
우선, import에 대한 내용이 주로 다뤄지기 때문에 모듈 import 전에 라이브러리에 사용할 폴더를 추가시켜줘야해유
이 부분은 모듈에서 다뤘으니 복습겸 참고하시기 바래유
[파이썬 입문] 모듈2
지난 글에서 기본적으로 import 명령은 같은 폴더에 있을때 가능하다고 했었쥬 그렇다면 계속 그래야될까 찾아보면 당연히 아니에유 그딴법이 어딨겠어유 아래와 같은 코드를 가진 파일을 만들
anordinaryman.tistory.com
__init__.py의 용도 먼저 알아볼께유
이 파일이 있는 디렉토리가 패키지임을 알려주는 증표에유
또한 각 디렉토리별로 * 기호로 어떤 모듈을 불러올 수 있는지 정의해놓은 파일이기도 해유
# ex3/data/__init__.py
__all__ = ['kim', 'lee', 'park'] # import * 사용시 해당 모듈을 불러옴
모듈에 간단한 문장만 넣어놓고 Shell에서 테스트해보면 확실히 알 수 있어유
# ex3/data/kim.py # lee.py, park.py 동일
def call():
print("안녕하세유 김씨에유")
# Shell에서 실행
>>> from ex3.data import *
>>> kim.call()
안녕하세유 이씨에유
>>> lee.call()
안녕하세유 김씨에유
>>> park.call()
안녕하세유 박씨에유
>>> han.call() # 실제로 모듈이 있더라도 __init__.py에 없으므로 오류 발사
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
han.call()
NameError: name 'han' is not defined
★파이썬 기본 라이브러리에 있는 패키지와 동일한 이름을 갖는다면 오류를 뿜어낼 가능성이 매우 높으니 주의하세유
import한 모듈의 함수를 실행하기 전에 반드시 알아야 할 점은
import (함수)가 아닌 import (패키지).(패키지).(모듈)과 같이 사용할땐 마지막은 꼭 모듈 또는 패키지!!!
라는 것을 꼭 기억하도록 해유
import된 대상이 패키지라면 __init__.py에 정의된 변수나 모듈(모듈 내의 클래스, 함수 등까지)을 사용할 수 있고,
import된 대상이 모듈이라면 해당 모듈에 정의된 변수, 클래스, 함수 등을 사용할 수 있어유
몇가지 예시로 마무리할께유
# Shell에서 실행
>>> import ex3.data.kim
>>> ex3.data.kim.call() # 패키지.패키지.모듈까지 import >> 패키지.패키지.모듈.함수 형태로 호출
안녕하세유 김씨에유
>>> kim.call()
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
kim.call()
NameError: name 'kim' is not defined
>>> from ex3 import data
>>> data.kim.call() # 패키지까지 import >> 해당 패키지.모듈.함수 형태로 호출
안녕하세유 김씨에유
>>> from ex3.data.kim import call
>>> call() # 모듈 내 함수까지 import >> 바로 함수 호출 가능
안녕하세유 김씨에유
헷갈리는구만유~
'Python 도전기' 카테고리의 다른 글
[파이썬 입문] 기본 내장 함수 (0) | 2022.12.30 |
---|---|
[파이썬 입문] 오류 발생/처리 (0) | 2022.12.28 |
[파이썬 입문] 모듈2 (0) | 2022.12.16 |
[파이썬 입문] 모듈1 (0) | 2022.12.14 |
[파이썬 입문] 클래스2 (0) | 2022.12.11 |