Atrybuty klasy a moduły Pythona

Interesuje mnie omówienie atrybutów klas w Pythonie. Na przykład, jaki jest dobry przypadek użycia dla atrybutów klas? W większości przypadków nie mogę wymyślić przypadku, w którym atrybut klasy jest lepszy niż atrybut poziomu modułu. Jeśli to prawda, to po co je mieć?

Problem, jaki mam z nimi, polega na tym, że jest zbyt łatwo omijać wartość atrybutu klasy przez pomyłkę, a następnie wartość „globalna” zmieniła się w atrybut instancji lokalnej.

Zapraszam do komentowania, w jaki sposób poradziłbyś sobie w następujących sytuacjach:

Stałe wartości używane przez klasę i / lub podklasy. Może to obejmować klucze słownikowe „magicznej liczby” lub indeksy list, które nigdy się nie zmienią, ale możliwe jest jednorazowe zainicjowanie.Domyślny atrybut klasy, który w rzadkich przypadkach był aktualizowany dla specjalnej instancji klasy.Globalna struktura danych używana do reprezentowania wewnętrznego stanu klasy współdzielonej przez wszystkie instancje.Klasa, która inicjuje wiele domyślnych atrybutów, na które nie mają wpływu argumenty konstruktora.

Niektóre pokrewne posty:
Różnica między atrybutami klasy i instancji

questionAnswers(4)

yourAnswerToTheQuestion