파이썬 모듈을 가져오는 키워드는 import
, as
, from
가 있다.
이 글에서는 모듈을 가져오는 키워드를 어떻게 쓰는 것인지, 어떻게 사용하는 것이 적절한지 알아본다.
모듈을 가져오는 방법은 세 가지가 있다.
첫 번째, import A
이는 A 모듈을 import 하라는 의미다. 예시 코드를 보자.
import os
print(os.listdir())
두 번째, from B import A
이는 A 모듈로부터 B 함수를 가져오라는 의미다. 예시 코드를 보자.
from os import listdir
print(listdir())
os 모듈로부터 listdir
함수를 가져왔다.
첫 번째와 같이 os.listdir()
을 사용하면 os 모듈을 인식할 수 없기 때문에 에러가 발생한다.
세 번째 from A import *
모듈 내의 모든 것을 가져온다.
예시 코드를 보자.
from os import *
print(dir())
출력 결과는 아래와 같다. 정말 os 모듈 내의 모든 함수를 가져왔다.
['DirEntry', 'F_OK', 'O_APPEND', 'O_BINARY', 'O_CREAT', 'O_EXCL', 'O_NOINHERIT', 'O_RANDOM', 'O_RDONLY', 'O_RDWR', 'O_SEQUENTIAL', 'O_SHORT_LIVED', 'O_TEMPORARY', 'O_TEXT', 'O_TRUNC', 'O_WRONLY', 'P_DETACH', 'P_NOWAIT', 'P_NOWAITO', 'P_OVERLAY', 'P_WAIT', 'R_OK', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'W_OK', 'X_OK', '__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_exit', 'abort', 'access', 'altsep', 'bt', 'chdir', 'chmod', 'close', 'closerange', 'cpu_count', 'curdir', 'datetime', 'defpath', 'device_encoding', 'devnull', 'dup', 'dup2', 'environ', 'error', 'execl', 'execle', 'execlp', 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep', 'fdopen', 'fsdecode', 'fsencode', 'fspath', 'fstat', 'fsync', 'ftruncate', 'get_exec_path', 'get_handle_inheritable', 'get_inheritable', 'get_terminal_size', 'getcwd', 'getcwdb', 'getenv', 'getlogin', 'getpid', 'getppid', 'isatty', 'kill', 'linesep', 'link', 'listdir', 'lseek', 'lstat', 'makedirs', 'mkdir', 'name', 'open', 'pardir', 'path', 'pathsep', 'pipe', 'popen', 'putenv', 'read', 'readlink', 'remove', 'removedirs', 'rename', 'renames', 'replace', 'rmdir', 'scandir', 'sep', 'set_handle_inheritable', 'set_inheritable', 'spawnl', 'spawnle', 'spawnv', 'spawnve', 'startfile', 'stat', 'stat_result', 'statvfs_result', 'strerror', 'supports_bytes_environ', 'symlink', 'system', 'terminal_size', 'times', 'times_result', 'truncate', 'umask', 'uname_result', 'unlink', 'urandom', 'utime', 'waitpid', 'walk', 'write']
참고로 세 번째 방식은 가급적이면 사용하지 않는 것이 좋다.
여러 모듈을 위와 같은 방식으로 가져오면 동일한 이름을 가진 함수에서 충돌이 발생할 수 있기 때문이다.
그럼 어떤 방식이 가장 좋은 방식인가? 장단점이 있지만 나는 첫 번째 방식이 제일 좋다고 생각한다.
함수가 어느 모듈에서 사용되었는지 명시해주기 때문이다.
아 마지막으로 as
키워드도 살펴보자.
as
키워드의 의미는 가져온 모듈에 이름을 붙여주는 것이다.
모듈의 이름이 긴 경우 축약하기 위해서 주로 사용한다.
import backtrader as bt # backtrader 모듈을 bt 라는 이름으로 사용하겠음
cerebro = bt.Cerebro()
정리 끝.
MAC OS CATALINA 에서 MONGO DB 설치하기 (0) | 2020.11.23 |
---|---|
[AWS] AWS 백그라운드에서 프로세스 실행시키기 (0) | 2020.08.03 |
[flutter] 프로젝트 설정 & 기본 앱 만들어보기 (0) | 2020.06.07 |
[android] AMD CPU에서 android emulator 설치시 4294967201 오류 해결하기 (3) | 2020.06.07 |
[kafka] 카프카 컨슈머 그룹(consumer group) 이해하기 (0) | 2020.03.31 |
댓글 영역