когда я запускаю следующий код:
with sqlite3.connect("example.db") as con:
c=con.cursor()
c.execute("CREATE TABLE test (id,name) ")
все работает нормально.
Но когда я использую mysql.connector
:
import mysql.connector as mariadb
with mariadb.connect(user='root', password='root', database='publications') as con:
c = con.cursor()
c.execute("CREATE TABLE test (id INT,name VARCHAR(45))")
я получаю это ошибка:
File "<...>", line 4, in <module>
with mariadb.connect(user='root', password='root', database='publications') as con:
AttributeError: __enter__
Может кто-нибудь сказать мне причину этого? Как я прочитал в "PEP 343 -" с "Заявлением" , чтобы использовать объект с оператором with, вам необходимо реализовать __enter__()
и __exit__()
-метод. Похоже, что это реализовано в sqlite3
, но не в mysql.connection
. Но в чем причина этого? Есть ли более глубокая причина или Mysql
просто не реализован?
Спасибо:)