Python 3 - Công cụ / Tiện ích

Thư viện tiêu chuẩn đi kèm với một số mô-đun có thể được sử dụng như mô-đun và tiện ích dòng lệnh.

Các dis Module:

Mô-đun dis là trình tháo gỡ Python. Nó chuyển đổi mã byte sang một định dạng thích hợp hơn một chút cho con người.

Bạn có thể chạy trình tháo gỡ từ dòng lệnh. Nó biên dịch tập lệnh đã cho và in các mã byte đã tách rời vào STDOUT. Bạn cũng có thể sử dụng đĩa như một mô-đun. Cácdis hàm nhận một lớp, phương thức, hàm hoặc đối tượng mã làm đối số duy nhất của nó.

Thí dụ

#!/usr/bin/python3
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)

Điều này sẽ tạo ra kết quả sau:

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

Các pdb Mô-đun

Mô-đun pdb là trình gỡ lỗi Python tiêu chuẩn. Nó dựa trên khung công tác gỡ lỗi bdb.

Bạn có thể chạy trình gỡ lỗi từ dòng lệnh (nhập n [hoặc tiếp theo] để chuyển sang dòng tiếp theo và giúp lấy danh sách các lệnh có sẵn) -

Thí dụ:

Trước khi bạn cố gắng chạy pdb.py, đặt đúng đường dẫn của bạn đến thư mục Python lib. Vì vậy, chúng ta hãy thử với ví dụ trên 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)

Các hồ sơ Mô-đun

Mô-đun hồ sơ là trình biên dịch Python tiêu chuẩn. Bạn có thể chạy trình biên dịch từ dòng lệnh -

Thí dụ

Hãy để chúng tôi cố gắng lập hồ sơ chương trình sau -

#!/usr/bin/python3

vara = 10
varb = 20

sum = vara + varb
print "vara + varb = %d" % sum

Bây giờ, hãy thử chạy cProfile.pyqua tệp sum.py như sau -

$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 ......}

Các tabnanny Mô-đun

Mô-đun tabnanny kiểm tra các tệp nguồn Python để tìm thụt đầu dòng không rõ ràng. Nếu một tệp kết hợp các tab và khoảng trắng theo cách gây ra thụt lề, bất kể bạn đang sử dụng kích thước tab nào, bảo mẫu phàn nàn -

Thí dụ

Hãy để chúng tôi cố gắng lập hồ sơ chương trình sau -

#!/usr/bin/python3

vara = 10
varb = 20

sum = vara + varb
print "vara + varb = %d" % sum

Nếu bạn thử một tệp đúng với tabnanny.py, thì nó sẽ không phàn nàn như sau:

$tabnanny.py -v sum.py
'sum.py': Clean bill of health.