Konstante in Python

Gibt es in Python eine Möglichkeit, unveränderliche Objekte wie C- und C ++ - Konstanten zu erstellen? Als ich mir das Python CookBook ansah und const einführte, konnte ich eine Neuzuweisung verhindern, aber das Wörterbuch selbst kann manipuliert werden, sodass es nicht wie erwartet funktioniert.

Ich möchte auch den Zustand des Objekts unveränderlich machen. Bitte lassen Sie mich wissen, ob es eine allgemeine und gute Methode gibt.

Code aus dem Kochbuch

qiita.rb


puts 'The best way to log and share programmers knowledge.'

const.py


## -*- coding: utf-8 -*-

class _const(object):
    class ConstError(TypeError):pass
    def __setattr__(self, name, value):
        if name in self.__dict__:
            raise self.ConstError("Can't rebind const(%s)" % name)
        self.__dict__[name] = value
        def __delattr__(self, name):
            if name in self.__dict__:
                raise self.ConstError("Can't unbind const(%s)" % name)
            raise NameError(name)

import sys
sys.modules[__name__] = _const()

Testprogramm

const_test.py


# -*- coding: utf-8 -*-
import const

#Die erste Zuordnung ist OK
const.dic = {'a':'b'}

#Dies ist ein Fehler
# const.dic = {'c':'d'}

#Kann hinzugefügt werden
const.dic['c'] = 'd'

#Kann gelöscht werden
del const.dic['a']

print const.dic

Recommended Posts

Konstante in Python
Konstante in Python
Quadtree in Python --2
Python in der Optimierung
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
Sortierte Liste in Python
Täglicher AtCoder # 36 mit Python
AtCoder # 2 jeden Tag mit Python
Täglicher AtCoder # 32 in Python
Täglicher AtCoder # 18 in Python
Singleton-Muster in Python
Dateioperationen in Python
Tastenanschlag in Python
Täglicher AtCoder # 33 in Python
Logistische Verteilung in Python
Täglicher AtCoder # 7 in Python
LU-Zerlegung in Python
Ein Liner in Python
AtCoder # 24 jeden Tag mit Python
Fallklasse in Python
RNN-Implementierung in Python
AtCoder # 8 jeden Tag mit Python
Dateiverarbeitung in Python
Elasticsearch Reindex in Python
Täglicher AtCoder # 42 in Python