Hinweis: Ich spreche nicht über das Verhindern der Neubindung einer Variablen. Ich spreche über das Verhindern der Änderung des Speichers, auf den sich die Variable bezieht, und von jedem Speicher, der von dort erreicht werden kann, indem den verschachtelten Containern folgt.Warum hat sich Python gegen konstante Referenzen entschieden?
Ich habe eine große Datenstruktur und möchte sie schreibgeschützt anderen Modulen zugänglich machen. Die einzige Möglichkeit, dies in Python zu tun, besteht darin, die einzelnen Teile, die ich ausstellen möchte, tief zu kopieren - in meinem Fall unerschwinglich teuer.
Ich bin sicher, dass dies ein sehr häufiges Problem ist, und es scheint, als wäre eine konstante Referenz die perfekte Lösung. Aber ich muss etwas verpassen. Vielleicht sind konstante Referenzen in Python schwer zu implementieren. Vielleicht tun sie nicht ganz das, was sie meiner Meinung nach tun.
Alle Einsichten würden geschätzt werden.
Während die Antworten sind hilfreich, ich habe nicht einen einzigen Grund gesehen, warum konst entweder schwer zu implementieren oder undurchführbar in Python wäre. Ich denke, "un-Pythonic" würde auch als ein berechtigter Grund gelten, aber ist es wirklich? Python zerlegt private Instanzvariablen (beginnend mit __
), um versehentliche Fehler zu vermeiden, und const
scheint nicht so anders zu sein.
EDIT: Ich bot nur eine sehr bescheidene Kopfgeld. Ich suche ein bisschen mehr Details darüber, warum Python ohne const endete. Ich vermute, der Grund ist, dass es wirklich schwierig ist, es perfekt zu implementieren. Ich würde gerne verstehen, warum es so schwer ist.
Vielen Dank, sehr hilfreich. Während ich mein Interesse nur auf "const" beschränkte, um Bugs zu vermeiden, behandelte dieser Thread ein "nützlicheres"/"breites" Konzept von "concept" als einen hashbaren Datentyp. Trotzdem, sehr interessant zu lesen. – max