English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 문서에서는 Python으로自定义 모듈을 생성하고 가져오는 방법을 배울 것입니다. 또한, Python에서 정적과 내장 모듈을 가져오고 사용하는 다른 기술을 배울 것입니다.
모듈은 Python 문장과 정의를 포함한 파일입니다.
예를 들어 example.py와 같은 Python 코드를 포함한 파일, 이는 모듈로 불리며, 모듈 이름은 example입니다.
또한, 모듈을 사용하여 대형 프로그램을 관리할 수 있는 작은 파일로 분할할 수 있습니다. 또한, 모듈은 코드의 재사용성을 제공합니다.
모듈에서 가장 일반적으로 사용되는 함수를 정의하고, 다른 프로그램에 정의를 복사하지 않고 가져올 수 있습니다.
다음 내용을 입력하고 example.py로 저장하세요.
# Python 모듈 예제 def add(a, b): """이 프로그램은 두 개의 숫자를 더합니다" 두 개의 숫자를 더한 결과를 반환합니다. result = a + b return result
이곳에서는 example라는 모듈에서 add()를 정의했습니다.함수. 이 함수는 두 개의 숫자를 받아서 그들의 합을 반환합니다.
모듈 내 정의를 다른 모듈이나 Python의 상호작용형 설명자에 가져올 수 있습니다.
이를 위해 import 키워드를 사용합니다. 이전에 정의된 모듈을 가져오려면, Python 표시줄에서 다음과 같은 내용을 입력합니다.
>>> import example
이는 example에서 직접 현재 상징 테이블에 정의된 함수 이름을 입력하지 않습니다. 이는 여기서만 모듈 이름을 입력합니다.
모듈 이름을 사용하여, 함수 점 연산자를 사용하여 함수에 접근할 수 있습니다. 예를 들어:
>>> example.add(4,5.5) 9.5
Python에는 많은 표준 모듈이 있습니다.
이를 확인할 수 있습니다.Python 표준 모듈의 전체 목록 및 용도. 이 파일들은 Python 설치 위치 내의 Lib 디렉토리에 위치하고 있습니다.
사용자 정의 모듈과 마찬가지로 표준 모듈을 가져올 수 있습니다.
모듈 가져오기 방법은 여러 가지가 있습니다. 다음과 같이 나열되어 있습니다.
import 문법을 사용하여 모듈을 가져올 수 있습니다. 그리고 위와 같이 점 연산자를 사용하여 내부 정의에 접근할 수 있습니다. 이는 예제입니다.
# 가져오기 문법 예제 # 표준 모듈 수학 가져오기 import math print("π의 값", math.pi)
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
π의 값 3.141592653589793
다음과 같이 모듈을 다른 이름으로 가져올 수 있습니다.
# 모듈을 다른 이름으로 가져오기 import math as m print("π의 값", m.pi)
우리는 math 모듈을 m로 다시 이름을 지었습니다. 일부 경우에는 쓰기 시간을 절약할 수 있습니다.
이름 math는 우리의 범위에서 인식되지 않으므로 math.pi는 잘못된 사용이며 m.pi는 올바른 사용입니다.
모듈에서 특정 이름을 가져올 수 있으며 전체 모듈을 가져오지 않아도 됩니다. 이는 예제입니다.
# 수학 모듈에서만 pi 가져오기 from math import pi print("π의 값", pi)
우리는 모듈에서 속성 pi만 가져옵니다.
이 경우, 점 연산자를 사용하지 않습니다. 여러 가지 속성을 다음과 같이 가져올 수 있습니다.
>>> from math import pi, e >>> pi 3.141592653589793 >>> e 2.718281828459045
모듈에서 모든 이름(정의)을 가져오기 위해 다음 구조를 사용할 수 있습니다.
# 기본 모듈 math에서 모든 이름 가져오기 from math import * print("pi의 값", pi)
수학 모듈에서 모든 정의를 가져옵니다. 이는 밑줄 시작하는 beginning을 제외한 모든 이름이 우리의 범위에서 보이게 합니다.
별표(*)를 포함한 가져오기*모든 내용이 심볼의 모든 내용이 좋은 프로그래밍 습관이 아닙니다. 이는 식별자가 중복 정의될 수 있습니다. 이는 우리의 코드의 가독성에도 영향을 미칠 수 있습니다.
모듈을 가져오는 동안 Python은 여러 위치를 확인합니다. 인터프레터는 먼저 내장 모듈을 찾습니다. 찾지 못하면 (sys.path에 정의된) 디렉토리 목록으로 이동합니다. 검색은 이 순서로 진행됩니다.
현재 디렉토리.
PYTHONPATH (디렉토리 목록을 포함한 환경 변수).
설치와 관련된 기본 디렉토리.
>>> import sys >>> sys.path ['', 'C:\\Python33\\Lib\\idlelib', 'C:\\Windows\\system32\\python33.zip', 'C:\\Python33\\DLLs', 'C:\\Python33\\lib', 'C:\\Python33', 'C:\\Python33\\lib\\site-packages'
우리는 이 목록에 우리의 own 경로를 추가할 수 있습니다.
Python 인터프레터는 세션 동안 모듈을 한 번만 가져옵니다. 이는 일을 더 효율적으로 만듭니다. 이는 그 작동 원리를 설명하는 예제입니다.
이름이 my_module인 모듈에 다음 코드가 있습니다.
# 이 모듈이 표시됩니다 # 여러 번 가져오기 및 다시 추가 print("이 코드가 실행되었습니다")
지금은 여러 번 가져오는 효과를 볼 수 있습니다.
>>> import my_module 이 코드가 실행되었습니다 >>> import my_module >>> import my_module
우리의 코드가 한 번만 실행되었음을 볼 수 있습니다. 이는 우리의 모듈이 한 번만 가져오는 것을 의미합니다.
이제, 우리의 모듈이 프로그램 실행 중에 변경되면, 다시 로드해야 합니다. 하나의 방법은 인터프리터를 재시작하는 것입니다. 그러나 이는 큰 도움이 되지 않습니다.
파이썬은 간단한 방법을 제공합니다. 모듈 reload() 내부의 함수 imp를 사용하여 모듈을 다시 로드할 수 있습니다. 이렇게 어떻게 합니까.
>>> import imp >>> import my_module 이 코드가 실행되었습니다 >>> import my_module >>> imp.reload(my_module) 이 코드가 실행되었습니다 <module 'my_module' from '.\my_module.py'>
dir() 내장 함수를 사용하면 모듈 내부에서 정의된 이름을 찾을 수 있습니다.
예를 들어, 시작 모듈 example에서 add() 함수를 정의했습니다.
>>> dir(example) ['__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', 'add'
여기서 우리는 이미 정렬된 이름 목록(또는 add)을 볼 수 있습니다. 모든 이름이 밑줄로 시작하는 다른 모든 이름은 모듈과 연관된 기본 파이썬 속성입니다(저희가 정의하지 않았습니다).
예를 들어, __name__ 속성은 모듈의 이름을 포함합니다.
>>> import example >>> example.__name__ 'example'
dir() 함수를 사용하면 매개변수 없이 모든 이름을 현재 이름 공간에서 정의할 수 있습니다.
>>> a = 1 >>> b = "hello" >>> import math >>> dir() ['__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter']