Konstante in Python

Muhammad Waiz Khan 22 Oktober 2021
  1. Python-Konstante durch Definieren einer Klasse
  2. Python-Konstante mit einer Funktion
  3. Python-Konstante mit der Funktion namedtuple()
Konstante in Python

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