Breakpoint nedir?


#1

Python’da bir kod yazarken yanlışlıkla buldum :smiley:. breakpoint ne işe yarıyor açıklayabilir misiniz?


#2

Kod oraya geldiğinde çalışmayı durdurur. En azından Vs code için öyle. IDLE için durum farklı mı bilmiyorum.

Ben bazen bug veya hata durumlarında buna başvururum. Çalışması gereken bir kod çalışmıyor mu veya ne zaman çalışıyor diye kontrol etmek için kullanıyorum,


#3

Komut satırında her türlü çalışır. Bunun dışında editörün desteği olması lazım. Bilindik editörler için illa ki bir eklenti vardır. IDLE’de çalışır heralde, bakmak lazım.


#4

@hasser güzelce açıklamış ama ben detaylandırmak isterim.

breakpoint konulan satırda program durur, bütün global/local değişkenler listelenir. Bunun dışında program durduğu anda bir çok detayı görebilirsiniz. Büyük ve karmaşık projeler için tasarlanmış. Program hata vermeyip işini yanlış yaptığında çok yararlı olabiliyor. Ben bunun sayesinde birçok hatayı kısa sürede çözdüm.

https://duckduckgo.com/?q=breakpoints&t=canonical&ia=web

Ben bakmıştım, ama çok istikrarlı çalışmıyordu.

Aynı destek PyCharm’da da mevcut.


#5

Bu arada breakpoint'leri, bunları koyduğumuz yerlerde unutmamalıyız. Yoksa üretim ortamında bir anda programımızın durduğunu görebiliriz.


#6

Temel olarak amacını açıklamışlar. IDE kullanan arkadaşlar konuyu daha iyi anlayabilmek için IDE içinden breakpoint koymak yerine python standart kütüphanesinde ki pdb kütüphanesine bakmasını ve bir denemesini öneriyorum. Daha sonra ipdb 3rd paketini yükleyerek aynı işlemi tekrarlasınlar. Konuyu daha iyi pekiştirmiş olacaklar. Küçük bir örnek vermek gerekirse;

def test(name: str) -> None:
    import pdb; pdb.set_trace()
    print(f"Merhaba {name}")

test("Kerem")
  • Bu kod fonksiyon çağırıldığında import pdb; pdb.set_trace() satırında duracaktır. Burada istediğiniz local ve global değişkenleri kullanabilirsiniz. Denemeler yapabilirsiniz.

      (Pdb) name
      'Kerem'
    
  • name değişkenini bastırdık ve pdb fonksiyonun içinde olduğu için ulaşabildik.

Kullanımları dökümanlarda bulunuyor;
https://docs.python.org/3/library/pdb.html

IPDB için;


#7

Bu ne işe yarıyor? (->)


#8

Bu fonksiyonun None değerini döndüreceğini söylüyor. Python’a son zamanlarda eklenen tip ipuçlarının (type hinting) bir parçası.