เครื่องมือ / ยูทิลิตี้ Python
ไลบรารีมาตรฐานมาพร้อมกับโมดูลจำนวนมากที่สามารถใช้เป็นโมดูลและยูทิลิตี้บรรทัดคำสั่ง
โรคโมดูล
โมดูล dis คือตัวถอด Python จะแปลงรหัสไบต์เป็นรูปแบบที่เหมาะสมกว่าเล็กน้อยสำหรับการบริโภคของมนุษย์
คุณสามารถเรียกใช้ disassembler จากบรรทัดคำสั่ง รวบรวมสคริปต์ที่กำหนดและพิมพ์รหัสไบต์ที่ถอดประกอบไปยัง STDOUT คุณยังสามารถใช้ dis เป็นโมดูล dis ฟังก์ชันใช้คลาสเมธอดฟังก์ชันหรืออ็อบเจ็กต์โค้ดเป็นอาร์กิวเมนต์เดียว
ตัวอย่าง
#!/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 [หรือถัดไป] เพื่อไปที่บรรทัดถัดไปและช่วยรับรายการคำสั่งที่มี) -
ตัวอย่าง
ก่อนที่คุณจะพยายามเรียกใช้ 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 profiler มาตรฐาน คุณสามารถเรียกใช้ profiler จากบรรทัดคำสั่ง -
ตัวอย่าง
ให้เราลองทำโปรไฟล์โปรแกรมต่อไปนี้ -
#!/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.