Należy używać norm społeczności PEP8 i Python ALL_CAPS_CONSTANTS. Jest to wspólna wskazówka wizualna, używana od dziesięcioleci w językach C, Java, Perl, PHP, Python, bash i innych językach programowania oraz środowiskach powłoki. Ale w nowoczesnym mowie online WSZYSTKIE KAPTURY SYGNUJĄ SHOUTING . I krzyczenie jest niegrzeczne.
Python jest jednak dość niespójny ALL_CAPS_CONSTANTS. JavaScript może mieć Math.PI, ale Python ma math.pi. Nie ma bardziej rozpoznawalnej lub trwałej stałej niż π. Lub weź pod uwagę sys.version_infowersję Pythona, na której pracujesz. 100% stałe przez cały okres programu - znacznie bardziej niż PORTlub MAX_ITERATIONSlub inne stałe chcesz zdefiniować. A może sys.maxsize? Maksymalna natywna wartość całkowita Twojej platformy jest stała w czasie nie tylko jednego lub dwóch uruchomień programu, ale także żywotności sprzętu.
Jeśli te stałe - w tym niektórzy lubią Õ i E, które są podstawowymi stałymi wszechświata i nie będzie zmieniać się całą wieczność - jeśli oni mogą być małymi literami, dobrze ... więc można inne stałe. Możesz wybrać.
Pamiętaj, PEP8 to przewodnik po stylu. Wytyczna, a nie prawo. Wytyczne często sprzeczne nawet ze standardową biblioteką Pythona. Powołując się na inną podstawową wytyczną Python, PEP20 (alias „The Zen of Python”):
- Piękne jest lepsze niż brzydkie
- Liczy się czytelność
- Praktyczność bije czystość.
Praktycznie rzecz biorąc, kiedy program YELLY_CONSTANTi SHOUTY_PARAMETERzaczyna się sprawdzać, pomaga pamiętać, że stałe wielkich liter na ogół nie są tak naprawdę trwałymi ideałami platońskimi , ale parametrami działania programu. Nie ma nic naprawdę stała się PORT, SITENAMEczy NUMRUNSi oni nie muszą być zarządzane jako globalnych programów samodzielny. Na przykład, można je upuścić do słownika jako globalnie dostępny pakiet parametrów programu:
config = {
'port': 80,
'sitename': "Bubba's Blog",
'numruns': 100,
}
W Pythonie dostępna jest również funkcja przekazywania parametrów słów kluczowych, która zmniejsza potrzebę użycia APPARENTLY_ANGRY_GLOBAL_VARIABLES:
def process_data(sitename, port=80, numruns=100):
...
process_data("Bubba's Blog")
W praktyce wiele z tych wartości zostanie (lub powinno być) odczytanych z plików konfiguracyjnych, zmiennych środowiskowych systemu operacyjnego, argumentów wiersza poleceń lub innych źródeł, aby spełnić funkcję odwrócenia zasady / wzorca sterowania . Ale to większa historia na kolejny dzień.