我的系统:
- Windows 10 x64
- Python版本3.9.4
- 标准库中集成的Sqlite3模块
DB连接和游标都被认为是资源,因此我可以使用with
子句.
我知道,如果我在with
个块中打开一个资源,它将自动关闭在它之外(文件是这样工作的).
如果这些假设是正确的,为什么我甚至可以从with
块之外访问连接或游标?
试试这个:
import sqlite3
with sqlite3.connect('test.db') as conn:
cur = conn.cursor()
# some code here....
# Now we are outside with block but I can still use conn and cur
cur.execute('''CREATE TABLE IF NOT EXISTS users
(name TEST, surname TEXT) ''')
cur2 = conn.cursor()