Auf ContextVar in der Unterfunktion kann nicht zugegriffen werdenPython

Python-Programme
Anonymous
 Auf ContextVar in der Unterfunktion kann nicht zugegriffen werden

Post by Anonymous »

Ich versuche, auf einen Variablenwert zuzugreifen, der am Anfang des Aufrufstapels berechnet wird. Der Wert muss tief unten in einem Unteraufruf verwendet werden, aber die verwendeten Bibliotheken erlauben keine Möglichkeit, den Wert als Schlüsselwortargument oder auf andere Weise zu übergeben. Ich habe die ContextVar als Alternative gefunden und so wie ich sie verstehe, kann man die Variable festlegen und dann innerhalb der aufgerufenen verschachtelten Funktionen auf ihren Wert zugreifen.
Allerdings scheint dies bei mir nicht zu funktionieren oder ich habe das Konzept nicht vollständig verstanden. Dieses Code-Snippet gibt den Standardwert None zurück, anstelle der Zeichenfolge „new_value“, die ich mir erhofft hatte. Die einzige Möglichkeit, dies zum Laufen zu bringen, bestand darin, ctx_var in foo() zu verwenden, aber das verfehlt irgendwie den Zweck, keinen Zugriff auf die Variable zu haben.

Code: Select all

from contextvars import ContextVar

ctx_var = ContextVar("bar")
token = ctx_var.set("new_value")

def foo():
bar = ContextVar("bar")
bar_value = bar.get(None)
print(bar_value)

foo()

ctx_var.reset(token)
Jede Hilfe wäre großartig.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post