Tag: contextmanager

Ein python-Kontext-manager verwaltet den Kontext einer with-Anweisung. Ein context-manager definiert enter-und exit-hooks, die aufgerufen werden, als code-block unter der with-Anweisung wird betreten und verlassen, beziehungsweise.

Aufruf __enter__ und __exit__ manuell

Anzahl der Antworten 2 Antworten
Habe ich gegoogelt aufrufen __enter__ manuell aber mit kein Glück. So stellen wir uns vor, ich habe MySQL connector-Klasse, die verwendet __enter__ und __exit__ Funktionen (ursprünglich mit with - Anweisung) eine Verbindung herstellen/trennen einer Datenbank. Und wir

Python __enter__ / __exit__ vs __init__ (oder __neue__) / __del__

Anzahl der Antworten 3 Antworten
Den ich gesucht habe und ich bin nicht in der Lage zu kommen mit einem guten Grund für die Verwendung von python __enter__ /__exit__ eher als __init__ (oder __new__ ?) /__del__ . Ich verstehe, dass __enter__ /__exit__

python 'with' - Anweisung, sollte ich contextlib.schließen?

Anzahl der Antworten 2 Antworten
from contextlib import closing def init_db(): with closing(connect_db()) as db: with app.open_resource('schema.sql') as f: db.cursor().executescript(f.read()) db.commit() Dies ist von flask tutorial Schritt 3(http://flask.pocoo.org/docs/tutorial/dbinit/#tutorial-dbinit). Und ich bin wenig neugierig auf die Linie 4, die. Muss ich importieren und

Funktion die als Dekorateur und Kontext-manager, der in Python?

Anzahl der Antworten 4 Antworten
Könnte dies sein, schieben die Dinge ein wenig zu weit, aber vor allem aus Neugier.. Wäre es möglich, ein callable-Objekt (Funktion/Klasse), der als beide ein Context-Manager und Dekorateur zur gleichen Zeit: def xxx(*args, **kw): # or as

Kontext-manager für Python-MySQLdb

Anzahl der Antworten 2 Antworten
Ich bin es gewohnt (verwöhnt?) python ist SQLite - Schnittstelle zum Umgang mit SQL-Datenbanken. Ein nettes feature in python-SQLite API die "context-manager", d.h., python with - Anweisung. Ich in der Regel ausführen von Abfragen in der folgenden

Asynchrone Kontext-manager

Anzahl der Antworten 3 Antworten
Ich habe eine asynchrone API, die ich zum verbinden und senden von E-Mails zu einem SMTP-server, die einige setup und abreißen, um es. So passt es sehr gut in einem contextmanager von Python 3 ist contextlib. Obwohl,

Fang die Ausnahme in der Kontext-manager __enter__()

Anzahl der Antworten 5 Antworten
Ist es möglich, um sicherzustellen, die __exit__() Methode aufgerufen wird, auch wenn es eine Ausnahme in __enter__()? >>> class TstContx(object): ... def __enter__(self): ... raise Exception('Oops in __enter__') ... ... def __exit__(self, e_typ, e_val, trcbak): ... print

Datei öffnen und schließen in python

Anzahl der Antworten 2 Antworten
Ich habe gelesen, dass wenn die Datei geöffnet wird, mit dem unter format with open(filename) as f: #My Code f.close() explizite schließen der Datei ist nicht erforderlich . Kann mir jemand erklären, warum es so ist ?

Ist es eine gute Praxis, die von python abhängig sind mit...als Erklärung

Anzahl der Antworten 2 Antworten
Ich bin gespannt, ob es als sicher oder gute Praxis, die von python abhängig sind mit...als Anweisung. Zum Beispiel beim öffnen einer Datei: with open("myfile","w") as myFile: #do something So, in diesem Beispiel habe ich vernachlässigt, um

Python-Multiprocessing-Lib-Fehler (AttributeError: __exit__)

Anzahl der Antworten 2 Antworten
Bin immer diese Fehlermeldung bei der Verwendung der pool.map(funct, iterable): AttributeError: __exit__ Keine Erklärung, nur die stack-trace, um die pool.py Datei innerhalb des Moduls. mithilfe in dieser Weise: with Pool(processes=2) as pool: pool.map(myFunction, mylist) pool.map(myfunction2, mylist2) Ich

Wie verwende ich Socket in Python als Kontextmanager?

Anzahl der Antworten 3 Antworten
Scheint es so, als wäre es nur natürlich, etwas zu tun: with socket(socket.AF_INET, socket.SOCK_DGRAM) as s: aber Python nicht Umsetzung einer Kontext-manager für die Steckdose. Kann ich die einfach verwenden Sie es als Kontext-manager, und wenn ja,

StringIO und Kompatibilität mit 'mit' Anweisung (Kontextmanager)

Anzahl der Antworten 2 Antworten
Habe ich einige legacy-code mit einem legacy-Funktion nimmt einen Dateinamen als argument und Prozesse, die den Inhalt der Datei. Eine funktionierende Faksimile der code ist unten. Was ich tun wollen ist nicht auf Datenträger schreiben mit einigen

Python: Erstellen Sie einen "mit" -Block für mehrere Kontextmanager

Anzahl der Antworten 4 Antworten
Angenommen, Sie haben drei Objekte, die Sie erwerben via Kontext-manager, zum Beispiel ein Schloss, Ein db-Anschluss und ein ip-socket. Sie können erwerben Sie durch: with lock: with db_con: with socket: #do stuff Aber gibt es einen Weg,