Python 3 - Araçlar / Yardımcı Programlar
Standart kitaplık, hem modüller hem de komut satırı yardımcı programları olarak kullanılabilen bir dizi modülle birlikte gelir.
Dis Modülü:
Dis modülü, Python çözücüdür. Bayt kodlarını insan tüketimi için biraz daha uygun bir biçime dönüştürür.
Sökücüyü komut satırından çalıştırabilirsiniz. Verilen betiği derler ve parçalanmış bayt kodlarını STDOUT'a yazdırır. Dis'i bir modül olarak da kullanabilirsiniz. dis function bir sınıf, yöntem, fonksiyon veya kod nesnesini tek argüman olarak alır.
Misal
#!/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)
Bu, aşağıdaki sonucu verecektir -
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 Modülü
Pdb modülü, standart Python hata ayıklayıcıdır. Bdb hata ayıklayıcı çerçevesine dayanır.
Hata ayıklayıcıyı komut satırından çalıştırabilirsiniz (sonraki satıra gitmek ve mevcut komutların bir listesini almak için yardım etmek için n [veya sonraki] yazın) -
Misal:
Koşmaya çalışmadan önce pdb.py, yolunu düzgün bir şekilde Python kitaplık dizinine ayarlayın. Öyleyse yukarıdaki örnek sum.py ile deneyelim -
$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)
profil Modülü
Profil modülü standart Python profilleyicisidir. Profil oluşturucuyu komut satırından çalıştırabilirsiniz -
Misal
Aşağıdaki programın profilini çıkarmaya çalışalım -
#!/usr/bin/python3
vara = 10
varb = 20
sum = vara + varb
print "vara + varb = %d" % sum
Şimdi koşmayı dene cProfile.pybu dosya üzerinde sum.py aşağıdaki gibi -
$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 Modülü
Tabnanny modülü, belirsiz girinti için Python kaynak dosyalarını kontrol eder. Bir dosya sekmeleri ve boşlukları girintiyi ortadan kaldıracak şekilde karıştırıyorsa, hangi sekme boyutunu kullanıyor olursanız olun, dadı şikayet eder -
Misal
Aşağıdaki programın profilini çıkarmaya çalışalım -
#!/usr/bin/python3
vara = 10
varb = 20
sum = vara + varb
print "vara + varb = %d" % sum
Tabnanny.py ile doğru bir dosya denerseniz, aşağıdaki gibi şikayet etmez -
$tabnanny.py -v sum.py
'sum.py': Clean bill of health.