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.