Latest web development tutorials

파이썬 모듈

모듈은 논리적으로 파이썬 코드를 구성 할 수 있습니다.

모듈에 관련 코드를 할당하면 더 이해할 수있는, 사용하기 코드를 쉽게 만들 수 있습니다.

파이썬 모듈은 임의의 이름 속성을 가진 개체를 결합 또는 참조하는 데 사용됩니다.

간단히 말해서, 모듈은 파일을 저장하기 위해 파이썬 코드입니다. 모듈은 함수, 클래스 및 변수를 정의 할 수 있습니다. 모듈은 실행 코드를 포함 할 수 있습니다.

일반적으로 파이썬 코드에서 호출 aname 모듈라는 파일 aname.py에서 찾을 수 있습니다. 다음은 간단한 모듈 support.py입니다.

def print_func( par ):
   print "Hello : ", par
   return


import 문

다음과 같이 단순히 소스 파일에서 다른 import 문을 수행, 파이썬 소스 파일을 사용하려면, 구문은 다음과 같습니다

import module1[, module2[,... moduleN]

모듈이 현재 검색 경로에 수입 될 경우 경우 인터프리터는 import 문을 발견.

검색 경로는 먼저 모든 디렉토리의 목록을 검색합니다 통역사입니다. 이 모듈 support.py을 가져올 때, 당신은 스크립트의 상단에있는 명령을 넣어해야합니다

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 导入模块
import support
 
# 现在可以调用模块里包含的函数了
support.print_func("Zara")

위의 출력의 예 :

Hello : Zara

모듈은 상관없이 가져 오기를 실행 몇 번, 한 번에 수입되지 않습니다. 이 가져 오기 모듈이 또 다시 실행하고 방지 할 수 있습니다.



에서 ... import 문

파이썬은 현재 이름 공간에 모듈에서 특정 부분에서 문을 가져올 수 있습니다. 구문은 다음과 같습니다

from modname import name1[, name2[, ... nameN]]

예를 들어, 모듈 FIB 피보나치 기능을 가져, 다음 문을 사용 :

from fib import fibonacci

현재 이름 공간에 전체 모듈을 FIB하지 않는이 문장은, 그것은 단지이 선언 모듈의 단일 글로벌 심볼 테이블 구현에 도입 레인 피보나치을 FIB 것입니다.



에서 ... 수입 * 문

모듈의 모든 내용은 모두 단순히 다음 문을 가능한 사용중인 현재 네임 스페이스에 있습니다 :

from modname import *

이것은 모든 프로젝트에 모듈을 가져올 수있는 쉬운 방법을 제공합니다. 그러나이 문은 사용하기에 너무 많이해서는 안됩니다.



위치 결정 모듈

당신이 모듈을 가져올 때, 파이썬 파서 모듈 위치 검색 순서는 다음과 같습니다

  • 현재 디렉토리
  • 현재 디렉토리에없는 경우, 파이썬은 쉘 변수 PYTHONPATH에 각 디렉토리를 검색합니다.
  • 당신이 찾을 수없는 경우, 파이썬은 기본 경로를 보면됩니다. UNIX에서 기본 경로는 / usr / local / lib / 파이썬 / 보통이다.

모듈 검색 경로의 sys.path 가변 시스템 모듈에 저장된다. 변수는 현재 디렉토리, PYTHONPATH 및 의사 결정 과정에 의한 기본 설치 디렉토리가 포함되어 있습니다.



PYTHONPATH 변수

디렉토리의 다수의리스트에 장착하여 환경 변수 PYTHONPATH있다. PYTHONPATH 쉘 변수 PATH 구문과 동일.

Windows 시스템에서 같은 전형적인 PYTHONPATH는 다음과 같습니다 :

set PYTHONPATH=c:\python20\lib;

UNIX 시스템에서와 같은 전형적인 PYTHONPATH는 다음과 같습니다 :

set PYTHONPATH=/usr/local/lib/python


네임 스페이스와 범위

변수는 개체의 이름이 일치하는 (식별자)를 가지고있다. 네임 스페이스는 (키)의 이름이 들어있는 변수이며, 각각의 개체는 사전의 (값)입니다.

파이썬 표현식은 로컬 및 글로벌 네임 스페이스 네임 스페이스 변수에 액세스 할 수 있습니다. 전역 변수와 같은 이름의 지역 변수 경우 로컬 변수는 전역 변수보다 우선합니다.

각 함수는 자신의 네임 스페이스를 가지고있다. 범위는 일반적으로 클래스 메소드와 함수로 규칙.

파이썬은 지능적으로 변수가 로컬 또는 글로벌 추측, 기능 할당 내에서 어떤 변수가 로컬 인 것으로 가정한다.

당신이 함수에서 전역 변수 할당을 제공하는 경우 따라서, 당신은 글로벌 문을 사용해야합니다.

글로벌 VarName과 발현은 파이썬은 로컬 네임 스페이스에서이 변수를 찾을 수없는, 그래서 파이썬, VarName과는 전역 변수이다 알려줍니다.

예를 들어, 글로벌 네임 스페이스의 가변 비용을 정의한다. 우리는 그 다음 변수 돈에 할당 된 함수 내에서, 다음 파이썬은 돈이 지역 변수라고 가정합니다. 그러나 돈을 액세스하기 전에 로컬 변수 선언하지 않았고, 그 결과 UnboundLocalError 실수있을 것이라는 것이다. 취소 글로벌 문 주석이 문제를 해결할 수 있습니다.

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
Money = 2000
def AddMoney():
   # 想改正代码就取消以下注释:
   # global Money
   Money = Money + 1
 
print Money
AddMoney()
print Money


DIR () 함수

DIR () 함수는 콘텐츠가 정의 모듈 이름, 문자열리스트 좋은 시퀀스를 행이다.

모듈에 정의 된 모든 수용 할 수있는 모듈, 변수와 함수의리스트를 돌려줍니다. 다음과 같이 간단한 예입니다 :

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 导入内置math模块
import math
 
content = dir(math)
 
print content;

위의 출력의 예 :

['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 
'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 
'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log',
'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 
'sqrt', 'tan', 'tanh']

여기에서, 모듈의 특정 문자열 변수 __name__ 포인트 이름은 __ FILE__ 점은 모듈의 파일 이름을 가져옵니다.



전역 ()과 지역 주민 () 함수

시외 전화, 전역 ()과 지역 주민에 따라 () 함수는 글로벌 및 로컬 네임 스페이스 이름을 반환하는 데 사용할 수 있습니다.

당신이 함수 내에서 지역 주민 ()을 호출하면, 반환 이름으로 모든 기능에 액세스 할 수 있습니다.

당신이 함수 내에서 () 전역을 호출 할 경우 세계 에너지 액세스의 모든 함수 이름을 반환합니다.

두 함수 유형은 사전입니다 돌아갑니다. 그래서 이름을 우리는 키 () 함수 제거를 사용합니다.



다시로드 () 함수

모듈이 코드의 스크립트 모듈의 상단 부분에 도입 될 때 한 번만 실행됩니다.

당신은 코드의 상단 부분에있는 모듈을 다시 실행하고자한다면, 당신은 다시로드 () 함수를 사용할 수 있습니다. 이 기능은 가져온 모듈 전에 다시 가져옵니다. 구문은 다음과 같습니다

reload(module_name)

여기에서, 모듈의 모듈 이름 이름 대신 문자열, 직접 배치한다. 예를 들어, 다음과 같이 헬로 모듈을 대체 할 :

reload(hello)


파이썬 팩

포장 파이썬 애플리케이션 환경의 다른 구성 요소 아래 모듈과 서브 패키지, 서브 패키지로 하위 패키지를 정의하는 계층 적 디렉토리 구조이다.

전화 디렉토리에 pots.py 파일을 고려한다. 이 파일은 다음의 소스 코드를 가지고 :

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
def Pots():
   print "I'm Pots Phone"
   

마찬가지로, 우리는 파일을 저장하는 두 가지 기능을 가지고 있습니다 :

  • 전화 / Isdn.py 포함 된 기능 ISDN ()
  • 기능 G3를 포함하는 전화 / G3.py ()

이제 전화 디렉토리에 파일 __init__.py을 만듭니다

  • 전화 / __ init__.py

당신이 전화를 가져 오면 다음과 같이, 당신은 __init__.py 년에 명시 적으로 import 문을 사용하는 데 필요한 모든 기능을 사용할 수있게합니다 :

from Pots import Pots
from Isdn import Isdn
from G3 import G3

당신이 __init__.py가하는 코드, 수입 전화 패키지를 추가 할 때 이러한 클래스 모두에서 사용할 수있는 경우.

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 导入 Phone 包
import Phone
 
Phone.Pots()
Phone.Isdn()
Phone.G3()

위의 출력의 예 :

I'm Pots Phone
I'm 3G Phone
I'm ISDN Phone

마찬가지로, 예를 들어, 각 파일에 하나의 기능을 가지고 있지만, 실제로는 많은 기능을 넣을 수있다. 이러한 파일에 파이썬 클래스를 정의하고이 클래스의 패키지를 구축 할 수 있습니다.