2010-01-05 12 views
17

Zauważyłem, że w modelach Django istnieje class Meta, który zawiera dodatkowe definicje dotyczące modelu.Dlaczego Meta Django jest klasą w starym stylu?

Moje pytanie brzmi: dlaczego jest to zrobione jako klasa w starym stylu? (tj. nie podklasy object?) Czy istnieje ku temu powód, czy jest to zwyczaj? Czy mógłbym to zrobić jako klasę w nowym stylu w moich projektach?

Odpowiedz

15

Uważam, że nie ma prawdziwego powodu (w tym historii, ponieważ od Pythona 2.2 istnieją klasy w nowym stylu) i że nie tylko można wybrać zamiast tego klasę w nowym stylu, ale prawdopodobnie byłoby to dobre pomysł, aby to zrobić (ze wszystkich zwykłych powodów).

8

Ponieważ klasa Meta nigdy nie jest niczym innym niż zwykłym kontenerem przestrzeni nazw, nie ma żadnej korzyści dla podklasy obiektu; tylko osiem dodatkowych znaków do wpisania. Nie zrobi to jednak nic, jeśli masz na to ochotę.

Powiązane problemy