2020. 12. 20. 16:20ㆍpython/초급 파이썬
1. 모듈
module
모듈은 여러 기능을 모아둔 파이썬 파일이다.
namespace
스탠다드 라이브러리
자료형 int float string
print dir 내장함수
유용한 스탠다드 모듈 math, randon, datetime, os, os.path, re, pickle, json, copy
스크립트 vs 모듈
보통 스크립트 와 모듈로 파일을 따로 만들어 쓴다
- 모듈: 필요한 변수 함수를 정의 모아놓은 파일
- 스크립트 : 모듈을 import로 가져와서 실행 용도 파일
__name__
- __name__ : 모듈의 이름을 저장해 놓은 변수
- __main__ : 실행한 파일의 이름은 __name__ = __main__이다.
import 된파일은 __name__ = 원래 모듈이름 으로 설정 된다.
if __name__ == '__main__': 을 사용하면 조건문 안에 있는 코드는 파일이 직접실행될 떄만 실행된다.
2. 패키지
package
관련된 여러개의 모듈을 모아 하나의 패키지라 한다.
새로운 폴더를 만들고 폴더안에 __init__.py 파일을 만들어 주면 된다.
파이참(PyCharm)에서는 new -> python package 를 선택하면 되는데 __init__.py 를 자동으로 만들어 준다.
*3.3 이전 버전에서는 필수 3.3 이상에서는 init 파일이 필수가 아니다.
사용방법
import packagename.modulename
import packagename.modulename as name
from packagename.modulename import def
from packagename import module
import packagename -> 패키지 안에 내용들은 import 되지 않는다. 안에 모듈도 같이 import 하려면 init 파일을 사용해야 한다.
__init__.py
import package 를 하면 __init__.py가 먼저 실행된다.
__init__.py 파일에
from package명.파일명 import 함수명, 함수명
실행(run) 파일에서 package.file.function() 을써야하는데 더 짧게 package.function() 형태로 쓸수있다.
import package명
package명.함수명()
상수 constant
각 모듈에서 정의하지 않고 패키지에서 한번만 정의해 준다.
- 한번만 정의해 주려면 __init__.py 파일에 정의해 주면 된다.
- __init__.py 에 정의되면 패키지 밖에서도 사용할수 있다.
# 상수를 직접 임포트
from package import constant
constant
or
# 패키지를 임포트
import package
package.constant
__all__ 특수변수
* import * 는 네임스페이스를 완벽히 이해했을 때 사용하기를 권장한다.
from package import *
아무 모듈도 import 되지 않는다.
__init__.py 에 __all__ = ['파일명(모듈module)','파일명(모듈module)'] 하면 실행 된다.
__all__ = ['파일명','파일명']
모듈module에서도 사용가능하다.
__all__ = ['consant', 'function' ]
3. 서브 패키지
subpackage
사용방법
subpackage1 __init__.py 에 아무것도 안 적었을 시
from package.subpackage1.module import function
from package.subpackage1 import module
import package.subpackage1.module
subpackage2 __init__.py 에
from package.subpackage2 import module
from package import subpackage2
import package.subpackage2
절대경로 상대경로
절대경로
from package.subpackage1.module import function
상대경로
from .module import function
현재 패키지에서 fuction을 가저와라
현재 subpackage1.
from ..subpackage2.module import function
'python > 초급 파이썬' 카테고리의 다른 글
[파이썬 Python] 객체지향 프로그래밍 (0) | 2020.12.18 |
---|---|
[파이썬 Python] 클래스 메서드 @classmethod (0) | 2020.12.17 |
[파이썬 Python] 데코레이터 @decorator (0) | 2020.12.17 |
[파이썬 Python] __str__ (0) | 2020.12.17 |
[파이썬 Python] __init__ (0) | 2020.12.17 |