conn是约定俗成的变量名,通常指数据库连接对象(如sqlite3.Connection)或socket连接对象(socket.socket),具体类型取决于上下文;其方法需按对应库规范调用,不可混用。
conn 不是 Python 内置的关键字或函数,而是一个**约定俗成的变量名**,通常代表“connection”(连接),用于存储数据库连接对象或网络套接字连接对象。
使用 pymysql、sqlite3、psycopg2 等库时,调用 connect() 方法会返回一个连接对象,开发者习惯把它赋值给变量 conn:
import sqlite3; conn = sqlite3.conn
ect("test.db")import pymysql; conn = pymysql.connect(host="localhost", user="root", password="123", database="demo")这个 conn 对象提供关键方法:
conn.cursor():获取游标,用来执行 SQLconn.commit():提交事务(对 insert/update/delete 生效)conn.rollback():回滚未提交的更改conn.close():关闭连接,释放资源(重要!)在 socket 编程中,server_socket.accept() 返回两个值:conn 和 addr。其中 conn 是一个 客户端 socket 对象,代表与该客户端建立的 TCP 连接:
conn.recv(1024):接收客户端发来的数据conn.sendall(b"Hello"):向客户端发送响应conn.close():断开该客户端连接此时 conn 不是数据库对象,而是可读写的通信通道。
它的实际类型取决于你用的库和上下文:
sqlite3.Connection(SQLite)pymysql.connections.Connection(PyMySQL)socket.socket(标准 socket 库)所以看到代码里有 conn.execute(...),基本可以判断这是数据库连接;如果是 conn.send(...),那一定是 socket 连接。
有人误以为 conn.execute() 是通用写法——其实不是:
Connection 对象 不直接支持 .execute(),必须通过 cursor() 调用Connection 对象也一样,得先 cursor = conn.cursor(),再 cursor.execute(...)
conn.execute() 成立