PEP8 ve Python topluluk normu kullanmaktır ALL_CAPS_CONSTANTS
. On yıllardır C, Java, Perl, PHP, Python, bash ve diğer programlama dilleri ve kabuk ortamlarında kullanılan yaygın bir görsel ipucudur. Ancak modern çevrimiçi bakışta, TÜM CAPS SHOUTING GÖSTERMELERİ . Ve bağırmak kaba.
Python, bununla ilgili olarak tutarsız ALL_CAPS_CONSTANTS
. JavaScript olabilir Math.PI
, ancak Python'da vardır math.pi
. Than'dan daha fazla tanınabilir veya kalıcı bir sabit yoktur. Ya da sys.version_info
üzerinde çalıştığınız Python sürümünü düşünün . Programınızın ömrü boyunca% 100 sabit - çok daha fazla PORT
veyaMAX_ITERATIONS
tanımladığınız diğer sabitlerden . Ya da sys.maxsize
? Platformunuzun maksimum yerel tamsayı değeri, yalnızca bir veya iki programın çalışması değil, donanımınızın ömrü boyunca sabittir.
Eğer bu sabitler - bazı fundamental ve e gibi, evrenin temel sabitleridir ve sonsuza dek değişmeyecekse - onlar alt durum, şey ... bu yüzden can diğer sabitleri olabilir. Seçebilirsiniz.
Unutmayın, PEP8 bir stil rehberidir. Bir rehber, bir yasa değil. Python'un standart kütüphanesi tarafından bile sıklıkla bir kılavuz Ve başka bir çekirdek Python kılavuzuna atıfta bulunarak, PEP20 (aka "Python Zen"):
- Güzel çirkin daha iyidir
- Okunabilirlik sayar
- Pratiklik saflığı yener.
Bir program en ufak bir not, Açık YELLY_CONSTANT
ve SHOUTY_PARAMETER
başlar rendeleyin, bütün-kapaklar sabitleri genellikle gerçekten kalıcı olmadığını hatırlamak yardımcı Platonik ideallerini , ancak programı çalıştırıp parametreleri. Hakkında gerçekten sabit bir şey yoktur PORT
, SITENAME
ya NUMRUNS
ve bunlar başına bir program globalsin olarak yönetilmelidir gerekmez. Örneğin, küresel olarak erişilebilen bir program parametreleri paketi olarak bir sözlüğe bırakılabilirler:
config = {
'port': 80,
'sitename': "Bubba's Blog",
'numruns': 100,
}
Python ayrıca, kullanım ihtiyacını azaltan iyi bir anahtar kelime parametresi geçirme özelliğine sahiptir APPARENTLY_ANGRY_GLOBAL_VARIABLES
:
def process_data(sitename, port=80, numruns=100):
...
process_data("Bubba's Blog")
Uygulamada, bu değerlerin birçoğu kontrol ilkesinin / modelinin tersine çevrilmesi için config dosyalarından, işletim sistemi ortam değişkenlerinden, komut satırı argümanlarından veya diğer kaynaklardan okunacaktır (ya da olmalıdır) . Ama bu başka bir gün için daha büyük bir hikaye.