Цикл до или после контекстного менеджера в python - PullRequest
0 голосов
/ 16 апреля 2020

Я искал через stackoverflow, не мог найти названия, связанные. Допустим, в python я хочу подключиться к базе данных и выполнить несколько запросов. что является лучшим способом. Объявлять с утверждением внутри l oop или иметь вне l oop? Это обычно применимо и к файлам. Для большей ясности см. Ниже 2 варианта.

Кроме того, я хотел бы узнать лучший способ найти try и, кроме операторов, если это будет до запуска менеджера контекста или после (как я сделал ниже).

с выпиской до l oop

def wr_to_db(db_file):
    query_switch = 'insert into switches values (?, ?)'
    with sqlite3.connect(db_file) as conn:
        for data in read_switch_data():
            try:
                conn.execute(query_switch, data)
            except sqlite3.IntegrityError as e:
                print('Error occured: ', e)

с выпиской после l oop

def wr_to_db(db_file):
    query_switch = 'insert into switches values (?, ?)'
    for data in read_switch_data():
        with sqlite3.connect(db_file) as conn:
            try:
                conn.execute(query_switch, data)
            except sqlite3.IntegrityError as e:
                print('Error occured: ', e)
...