Zuweisung dynamischer Variablennamen

Bei der Verwendung von tkinter müssen Variablen dynamisch generiert werden, wie z. B. das dynamische Generieren der Variablen var1...var10.

Verwendung von exec für dynamische Zuweisung

exec ist eine eingebaute Funktion in python3, die die dynamische Ausführung von Python-Code unterstützt.

Verwendung von exec für dynamische Zuweisung

exec ist eine eingebaute Funktion in python3, die die dynamische Ausführung von Python-Code unterstützt.

Beispiel

>>> for i in range(5):
... exec('var{} = {}'.format(i, i))
...
>>> print(var0, var1, var2, var3 ,var4)
0 1 2 3 4
>>>

Dynamische Zuweisung unter Verwendung des Namespace

Im Namespace von Python werden Variablennamen und Werte in einem Dictionary gespeichert. Sie können die Funktionen locals() und globals() verwenden, um den lokalen bzw. den globalen Namespace zu erhalten.

Beispiel

>>> names = locals()
>>> for i in range(5):
...     names['n' + str(i) ] = i
...
>>> print(n0, n1, n2, n3, n4)
0 1 2 3 4
>>>

Verwendung dynamischer Variablen in Klassen

Die Attribute von Python-Klassenobjekten werden in __dict__ gespeichert. __dict__ ist ein Dictionary, wobei die Schlüssel Attributnamen sind und die Werte den Attributwerten entsprechen.

Beispiel

>>> print(n0, n1, n2, n3, n4)
0 1 2 3 4
>>> class Test_class(object):
...     def __init__(self):
...         names = self.__dict__
...         for i in range(5):
...             names['n' + str(i)] = i
...
>>> t = Test_class()
>>> print(t.n0, t.n1, t.n2, t.n3, t.n4)
0 1 2 3 4

Aufrufen dynamischer Variablen

Tatsächlich rufen wir Variablen bei sich wiederholenden Variablen im Allgemeinen nicht auf diese Weise auf, wie z. B.: var0, var1, var2, var3, var4....varN. Wir können die folgende Methode verwenden, um Variablen dynamisch aufzurufen.

Definieren Sie zunächst die folgenden Variablen:

Beispiel

>>> for i in range(5):
...     exec('var{} = {}'.format(i, i))
...
>>> print(var0, var1, var2, var3 ,var4)
0 1 2 3 4

Verwendung der exec-Funktion

Ähnlich können Sie exec verwenden, um Variablen aufzurufen

Beispiel

>>> for i in range(5):
...     exec('print(var{}, end=" ")'.format(i))
...
0 1 2 3 4

Verwendung von Namespace

Da sowohl locals() als auch globals() im Namespace ein Dictionary zurückgeben, verwenden Sie die get-Methode des Dictionary, um Variablenwerte zu erhalten.

Beispiel

>>> names = locals()
>>> for i in range(5):
...     print(names.get('var' + str(i)), end=' ')
...
0 1 2 3 4

Originaladresse: https://www.cnblogs.com/technologylife/p/9211324.html