[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]