Python 도구 / 유틸리티
표준 라이브러리에는 모듈 및 명령 줄 유틸리티로 모두 사용할 수있는 여러 모듈이 함께 제공됩니다.
는 DIS 모듈
dis 모듈은 Python 디스어셈블러입니다. 바이트 코드를 사람이 소비하기에 약간 더 적합한 형식으로 변환합니다.
명령 줄에서 디스어셈블러를 실행할 수 있습니다. 주어진 스크립트를 컴파일하고 디스 어셈블 된 바이트 코드를 STDOUT에 인쇄합니다. dis를 모듈로 사용할 수도 있습니다. 그만큼dis function은 클래스, 메서드, 함수 또는 코드 객체를 단일 인수로받습니다.
예
#!/usr/bin/python
import dis
def sum():
vara = 10
varb = 20
sum = vara + varb
print "vara + varb = %d" % sum
# Call dis function for the function.
dis.dis(sum)
이것은 다음 결과를 생성합니다-
6 0 LOAD_CONST 1 (10)
3 STORE_FAST 0 (vara)
7 6 LOAD_CONST 2 (20)
9 STORE_FAST 1 (varb)
9 12 LOAD_FAST 0 (vara)
15 LOAD_FAST 1 (varb)
18 BINARY_ADD
19 STORE_FAST 2 (sum)
10 22 LOAD_CONST 3 ('vara + varb = %d')
25 LOAD_FAST 2 (sum)
28 BINARY_MODULO
29 PRINT_ITEM
30 PRINT_NEWLINE
31 LOAD_CONST 0 (None)
34 RETURN_VALUE
PDB의 모듈
pdb 모듈은 표준 Python 디버거입니다. bdb 디버거 프레임 워크를 기반으로합니다.
명령 줄에서 디버거를 실행할 수 있습니다 (n [또는 next]를 입력하여 다음 줄로 이동하고 사용 가능한 명령 목록을 얻는 데 도움을줍니다)-
예
실행하기 전에 pdb.py, 경로를 Python lib 디렉토리로 올바르게 설정하십시오. 위의 예제 sum.py를 사용해 보겠습니다.
$pdb.py sum.py
> /test/sum.py(3)<module>()
-> import dis
(Pdb) n
> /test/sum.py(5)<module>()
-> def sum():
(Pdb) n
>/test/sum.py(14)<module>()
-> dis.dis(sum)
(Pdb) n
6 0 LOAD_CONST 1 (10)
3 STORE_FAST 0 (vara)
7 6 LOAD_CONST 2 (20)
9 STORE_FAST 1 (varb)
9 12 LOAD_FAST 0 (vara)
15 LOAD_FAST 1 (varb)
18 BINARY_ADD
19 STORE_FAST 2 (sum)
10 22 LOAD_CONST 3 ('vara + varb = %d')
25 LOAD_FAST 2 (sum)
28 BINARY_MODULO
29 PRINT_ITEM
30 PRINT_NEWLINE
31 LOAD_CONST 0 (None)
34 RETURN_VALUE
--Return--
> /test/sum.py(14)<module>()->None
-v dis.dis(sum)
(Pdb) n
--Return--
> <string>(1)<module>()->None
(Pdb)
프로필 모듈
프로필 모듈은 표준 Python 프로파일 러입니다. 명령 줄에서 프로파일 러를 실행할 수 있습니다-
예
다음 프로그램을 프로파일 링 해 보겠습니다.
#!/usr/bin/python
vara = 10
varb = 20
sum = vara + varb
print "vara + varb = %d" % sum
이제 실행 해보세요 cProfile.py다음과 같이이 파일 sum.py 위에 -
$cProfile.py sum.py
vara + varb = 30
4 function calls in 0.000 CPU seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno
1 0.000 0.000 0.000 0.000 <string>:1(<module>)
1 0.000 0.000 0.000 0.000 sum.py:3(<module>)
1 0.000 0.000 0.000 0.000 {execfile}
1 0.000 0.000 0.000 0.000 {method ......}
tabnanny의 모듈
tabnanny 모듈은 Python 소스 파일에서 모호한 들여 쓰기를 확인합니다. 파일이 들여 쓰기를 없애는 방식으로 탭과 공백을 혼합하면 사용중인 탭 크기에 관계없이 유모가 불평합니다.
예
다음 프로그램을 프로파일 링 해 보겠습니다.
#!/usr/bin/python
vara = 10
varb = 20
sum = vara + varb
print "vara + varb = %d" % sum
tabnanny.py로 올바른 파일을 시도하면 다음과 같이 불평하지 않습니다.
$tabnanny.py -v sum.py
'sum.py': Clean bill of health.