Alat / Utilitas Python
Pustaka standar dilengkapi dengan sejumlah modul yang dapat digunakan baik sebagai modul maupun sebagai utilitas baris perintah.
The dis Modul
Modul dis adalah disassembler Python. Ini mengubah kode byte ke format yang sedikit lebih sesuai untuk konsumsi manusia.
Anda dapat menjalankan disassembler dari baris perintah. Ini mengkompilasi skrip yang diberikan dan mencetak kode byte yang dibongkar ke STDOUT. Anda juga dapat menggunakan dis sebagai modul. Itudis function mengambil kelas, metode, fungsi atau objek kode sebagai argumen tunggalnya.
Contoh
#!/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)
Ini akan menghasilkan hasil sebagai berikut -
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
The pdb Modul
Modul pdb adalah debugger Python standar. Ini didasarkan pada kerangka debugger bdb.
Anda dapat menjalankan debugger dari baris perintah (ketik n [atau berikutnya] untuk pergi ke baris berikutnya dan membantu mendapatkan daftar perintah yang tersedia) -
Contoh
Sebelum Anda mencoba lari pdb.py, setel jalur Anda dengan benar ke direktori lib Python. Jadi mari kita coba dengan contoh di atas 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)
The profil Modul
Modul profil adalah profiler Python standar. Anda dapat menjalankan profiler dari baris perintah -
Contoh
Mari kita coba membuat profil program berikut -
#!/usr/bin/python
vara = 10
varb = 20
sum = vara + varb
print "vara + varb = %d" % sum
Sekarang, coba lari cProfile.pydi atas file ini sum.py sebagai berikut -
$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 ......}
The tabnanny Modul
Modul tabnanny memeriksa file sumber Python untuk mencari indentasi yang ambigu. Jika sebuah file mencampur tab dan spasi dengan cara yang membuang lekukan, tidak peduli ukuran tab apa yang Anda gunakan, pengasuh mengeluh -
Contoh
Mari kita coba membuat profil program berikut -
#!/usr/bin/python
vara = 10
varb = 20
sum = vara + varb
print "vara + varb = %d" % sum
Jika Anda mencoba file yang benar dengan tabnanny.py, maka itu tidak akan mengeluh sebagai berikut -
$tabnanny.py -v sum.py
'sum.py': Clean bill of health.