[Python-de] Re: konstante Lists, Dictionaries
[email protected] (Stefan Ram) 22 Dec 2023 21:37:55 GMT
| Newsgroups | gmane.comp.python.general.german |
|---|---|
| Organization | Stefan Ram |
| Message-ID | <[email protected]> |
Markus Schaaf <[email protected]> writes: >nicht gemerkt hatte, dass ein Dictionary von verschiedenen >Coroutinen modifiziert wird. In typisierten Sprachen würde man >der Coroutine eine konstante Referenz übergeben. Gibt's in Python >Methoden, sich vor solchen Fehlern zu schützen, ohne eine tiefe >Kopie anzulegen? (Oder vielleicht ist das gar nicht so schlimm?) Das folgende Program zeigt, wie man in Python ein "konstantes Wörterbuch" c definieren könnte, das die Daten mit einem nicht-konstanten Wörterbuch d teilt. Es ist aber nur als eine Ideenskizze zu verstehen. Vor einem etwaigen Einsatz in der Praxis sind je nach Bedarf vermutlich Anpassungen vorzunehmen. (Für Listen sollte das auch ähnlich gehen.) main.py import collections class dictionary( collections.UserDict ): pass class const_dict( dictionary ): def __init__( self, other ): self.data = other.data def __setitem__( self, key, item ): raise NotImplementedError d = dictionary() d[ 1 ]= 2 print( d ) c = const_dict( d ) print( c ) c[ 2 ]= 3 stdout {1: 2} {1: 2} Traceback (most recent call last): File "main.py", line 17, in <module> c[ 2 ]= 3 File "main.py", line 10, in __setitem__ raise NotImplementedError NotImplementedError _______________________________________________ python-de Mailingliste -- [email protected] Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an [email protected] https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: [email protected]