Einfache Frage, aber ich habe damit zu kämpfen.Elegante Art, mit redundanten Wörtern auf Python-Klasse/Methodenbenennung umzugehen
Ich mag einfach so einen benutzerdefinierte Objekt-Manager zu einem Django-Modell erstellen:
class Clearance(models.Model):
user = models.OneToOneField(User, verbose_name='usuário')
level = models.CharField(choices=PERMISSION_LEVELS, max_length=20, verbose_name='nível')
tech_support = TechSupportManager()
user_manager = UserManagerManager()
OK, das Problem ist das redundante Manager-Wort. Ich habe nicht das Gefühl, das letzte Wort zu entfernen und "UserManager" einfach zu verlassen, ohne wirklich zu sagen, was diese Klasse tun soll, aber das Wort zu duplizieren fühlt sich an, als wäre es das Falsche.
Gibt es einen eleganteren Weg?
Warum haben Sie sich entschieden, das überhaupt zu nennen? Ich bin mir nicht sicher, ob diese Frage zu StackOverflow passt, da es sich um eine subjektive Meinung handelt. Django ist es egal, wie Sie Ihre Klassen nennen, aber es ist eine nützliche Konvention, nur 'FooManager' für Unterklassen von models.Manager zu verwenden. –
benenne einfach user_manger in 'user' und die Unterklasse in 'UserManager' um. – postoronnim
@ HåkenLid meine Frage basiert auf der Tatsache, dass Python eine sehr breite Empfehlung hat, Hinweise darüber, wie der Code sein sollte. Ist eher so. Ich meine, ich weiß, dass der Name der Klasse, die mit Manager endet, nicht obligatorisch ist, aber es ist eine Konvention. Meine Frage ist alles darüber, Klassenbenennung Konvektion auf Python –