Лучший способ запустить код очистки генератора PythonPython

Программы на Python
Anonymous
Лучший способ запустить код очистки генератора Python

Сообщение Anonymous »

Я пытаюсь написать функцию-генератор, которая извлекает строки из базы данных и возвращает их по одной. Однако я не уверен, что код очистки, отмеченный ** ниже, выполняется так, как я думаю. Если нет, то как лучше всего поместить код очистки внутри самого генератора, который выполняется после последнего оператора урожайности? Я рассматривал возможность перехвата StopIteration, но, похоже, это делается вызывающей стороной, а не внутри генератора.
def MYSQLSelectGenerator(stmt):
...
try:
myDB = MySQLdb.connect(host=..., port=..., user=..., passwd=..., db=...)
dbc=myDB.cursor()
dbc.execute(stmt)
d = "asdf"
while d is not None:
d = dbc.fetchone() #can also use fetchmany() to be more efficient
yield d
dbc.close() #** DOES THIS WORK AS I INTEND, MEANING AS SOON AS d = "None"
except MySQLdb.Error, msg:
print("MYSQL ERROR!")
print msg


Подробнее здесь: https://stackoverflow.com/questions/194 ... eanup-code

Вернуться в «Python»