Konstante in Python
- Python-Konstante durch Definieren einer Klasse
- Python-Konstante mit einer Funktion
-
Python-Konstante mit der Funktion
namedtuple()
In diesem Tutorial werden mehrere Methoden zum Erstellen einer Konstanten oder zum Erreichen konstanter Eigenschaften in Python vorgestellt. Wir können in Python keine Konstante deklarieren, da es kein Schlüsselwort wie const
gibt. Aber wir können unsere eigene Konstante auf folgende Weise erstellen.
Python-Konstante durch Definieren einer Klasse
Eine Möglichkeit besteht darin, eine Klasse zu erstellen und ihr Attribut als schreibgeschützt zu deklarieren, um als Konstante verwendet zu werden. Der folgende Beispielcode zeigt, wie das Klassenattribut in Python als schreibgeschützt deklariert wird.
class constant(object):
__slots__ = ()
val = 457
a = constant()
print(a.val)
a.val = 23
Ausgabe:
457
AttributeError: 'constant' object attribute 'val' is read-only
Eine andere Möglichkeit, eine Konstante in Python zu erstellen, besteht darin, eine Klasse zu erstellen und das __setattr__(self, *_)
zu überschreiben, um die Ausnahme zurückzugeben, wenn jemand versucht, dem Klassenattribut einen neuen Wert zuzuweisen.
Wir können ein Klassenattribut als Konstante in Python auf folgende Weise verwenden.
class Constant(object):
CONST = "abcd"
def __setattr__(self, *_):
raise Exception("Tried to change the value of a constant")
a = Constant()
print(a.CONST)
a.CONST_NAME = "a"
Ausgabe:
abcd
Exception: Tried to change the value of a constant
Python-Konstante mit einer Funktion
Wir können auch eine Funktion erstellen, die immer den gleichen Wert zurückgibt, den wir der Konstanten zuweisen möchten. Der folgende Beispielcode zeigt, wie Sie die Funktion verwenden, um den konstanten Wert in Python abzurufen.
def constant():
return "xyz"
constant()
Ausgabe:
xyz
Python-Konstante mit der Funktion namedtuple()
Wir können auch die Funktion namedtuple(typename, field_names)
des Moduls collections
verwenden, um eine Konstante in Python zu erstellen. Die Funktion namedtuple()
gibt eine neue Tupel-Unterklasse des Namens typename
zurück, und die field_names
sind eine Liste von String-Bezeichnern. Wie in Python ist ein Tupel unveränderlich, der Wert einer neuen Tupel-Unterklasse kann nicht geändert werden, damit er als Konstante verwendet werden kann.
Das folgende Beispiel zeigt, wie Sie mit der Funktion namedtuple()
eine Konstante in Python erstellen.
from collections import namedtuple
my_consts = namedtuple("Constants", ["const1", "const2"])
consts = my_consts(54, "abc")
print(consts.const1)
print(consts.const2)
Ausgabe:
54
abc
Versuchen wir nun, den Wert des Tupels zu ändern.
from collections import namedtuple
my_consts = namedtuple("Constants", ["const1", "const2"])
consts = my_consts(54, "abc")
consts.const1 = 0
Ausgabe:
AttributeError: can't set attribute