ich stehe hier gerade ein bischen auf dem Schlauch und vergesse sicher etwas ganz einfaches und grundliegendes ... trotzdem: Ich komme nicht drauf:
Ich möchte gerne eine Funktion schreiben, die mit einem Context Manager ein Objekt erzeugt und zurückgibt. Dann möchte ich damit arbeiten und wenn ich fertig bin (falls das Script beendet wird), soll der Context Manager zuschlagen und die __exit__() routine des Objektes ausführen; sprich: Im folgendem Beispiel, die Datei schließen.
Grundsätzlich stelle ich mir das so vor:
Code: Alles auswählen
def get_file(path):
with open(path, 'w') as f:
return f
my_file = get_file("/tmp/foo.txt")
for x in range(1, 4):
my_file.write(str(x))
Mit yield komme ich zu ähnlichen Ergebnissen ...
Was ich im Endeffekt vorhabe ist mir damit mehrere gleiche DB Verbindungen zu erstellen, um nicht in jeder meiner Funktionen denselben Connection Code haben zu müssen ...
Wie genau geht das?