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.