Mir wurde gesagt, dass es eine schlechte Form ist, local() zu verwenden, um Variablen dynamisch in Python zu erstellen. Allerdings schreibe ich eine Klasse (mit Django und Bachstelze), und ich brauche diese Dinge wirklich in der Klasse dict zu gehen, auch bekannt als die lokalen Variablen der class
Anweisung, nicht in einer separaten Datenstruktur:Bessere Methode zum Erstellen von class-dict-Einträgen aus einer Schleife als local()
class BlogPage(Page):
for language in languages:
locals()['body_' + language] = RichTextField(blank=True)
Ich glaube nicht, dass ich diese nach der Klassenanweisung auch mit setattr
setzen kann, weil Djangos Metaklassen-Verarbeitung dann schon passiert ist.
Gibt es einen besseren Weg?
Verwenden Sie ein Wörterbuch vielleicht. –
... okay, für eine Klassenaussage, besonders wenn die Metaklasse irgendeine wichtige Arbeit leistet (was hier ziemlich wahrscheinlich ist), kann "localhips()" tatsächlich gerechtfertigt sein (und wird wahrscheinlich tatsächlich funktionieren, im Gegensatz zu 'localans()' in einer Funktion). – user2357112
Der bessere Weg ist, dies überhaupt nicht zu tun und irgendeine Art von Behälter zu benutzen **. –