Ana içeriğe geç
Programlama

Python'ın yerleşik sabitleri farklı dil kurallarına göre çalışıyor

Öne çıkanlar

  • True, False ve None dilde doğrudan anahtar sözcük olarak tanımlandığı için öznitelik olarak kullanılamıyor.
  • __debug__ normal bir tanımlayıcı olmasına rağmen atama yapılamayan tek değişken olarak özel kural içeriyor.
  • Ellipsis ve NotImplemented sabitleri builtins üzerinden veya yerel kapsamda yeniden tanımlanabiliyor.

Python programlama dilinde yerleşik olarak tanımlanan altı temel sabit (True, False, None, debug, Ellipsis ve NotImplemented), derleyici ve yorumlayıcı düzeyinde birbirinden farklı kurallara tabi tutuluyor. Teknik bir analizde ele alınan bu sabitlerin, ad çözümleme, anahtar sözcük yapısı ve değer atama süreçlerinde tutarlı bir davranış sergilemediği ortaya kondu.

True, False ve None ifadeleri dilin sözcüksel belirteçleri (lexical tokens) olarak doğrudan anahtar sözcük seviyesinde korunuyor ve bu sayede nesne özniteliği olarak dahi kullanılamıyor. Buna karşılık debug, sıradan bir tanımlayıcı olmasına rağmen dil seviyesinde özel bir kural ile atama ve silme işlemlerine karşı SyntaxError fırlatıyor. builtins modülü üzerinden değiştirilmeye çalışılsalar bile bu dört sabitin ana kapsamdaki değerleri etkilenmiyor.

Ellipsis ve NotImplemented sabitleri ise dilde gerçek birer sabit gibi davranmıyor; yalnızca builtins modülünde tanımlı sıradan nesneler olarak yer alıyor. Geliştiriciler bu iki sabitin değerini genel veya yerel kapsamlarda kolaylıkla değiştirebiliyor. Ancak Ellipsis yerine üç nokta simgesi (...) kullanıldığında sözcüksel yapı nedeniyle orijinal nesne korunuyor.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.