Chamar a execução da Função dentro da classe em Python Postado Junho 19, 2022 Saudações: Alguém poderia por favor me explicar o que esta errado no código abaixo . Estou tendo inserir no meu programa uma classe com as funções básicas para conexão e consulta no database. Eu não estou conseguindo chamar a execução as funções criadas dentro da classe de conexão. segue código: ----------------------------------------------------------------------------------------------------------------------- import mysql.connector class conexaoDB(): def __init__(self, host='localhost', user='root', pwd='', db='automatizaf'): self.host = host self.user = user self.pwd = pwd self.db = db def conecta(self): self.con = mysql.connector.connect(host=self.host, user=self.user, password=self.pwd, database=self.db) self.cur = self.con.cursor() def desconeta(self): self.con.close() def executa_DQL(self, sql): self.conecta() self.cur.execute(sql) res = self.cur.fetchall() self.desconeta() return res def executa_DML(self, sql): self.conecta() self.cur.execute(sql) self.con.commit() self.desconeta() instanc = conexaoDB() cursor = instanc.conecta() cursor.executa_DQL("SELECT * FROM tb_usuarios") ------------------------------------------------------------------------------------------------------------------------ segue Erro: "C:\Users\Sergio Iescas\AppData\Local\Programs\Python\Python39\python.exe" "C:/Users/Sergio Iescas/PycharmProjects/automatiza2022/teste conexao.py" Traceback (most recent call last): File "C:\Users\Sergio Iescas\PycharmProjects\automatiza2022\teste conexao.py", line 38, in <module> cur.executa_DQL('SELECT * FROM tb_usuarios') AttributeError: 'NoneType' object has no attribute 'executa_DQL' Process finished with exit code 1 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx instanc = conexaoDB() *\ instancia da classe \* cursor = instanc.conecta() *\ variável cursor recebe atributos na classe com a função conecta() \* cursor.executa_DQL("SELECT * FROM tb_usuarios") *\ variável cursor chama execução do método dentro da classe com os parametros consulta mySQL \* classe de conexão .py
Chamar a execução da Função dentro da classe
em Python
Postado
Saudações:
Alguém poderia por favor me explicar o que esta errado no código abaixo .
Estou tendo inserir no meu programa uma classe com as funções básicas para conexão e consulta no database.
Eu não estou conseguindo chamar a execução as funções criadas dentro da classe de conexão.
segue código:
-----------------------------------------------------------------------------------------------------------------------
import mysql.connector
class conexaoDB():
def __init__(self, host='localhost', user='root', pwd='', db='automatizaf'):
self.host = host
self.user = user
self.pwd = pwd
self.db = db
def conecta(self):
self.con = mysql.connector.connect(host=self.host,
user=self.user,
password=self.pwd,
database=self.db)
self.cur = self.con.cursor()
def desconeta(self):
self.con.close()
def executa_DQL(self, sql):
self.conecta()
self.cur.execute(sql)
res = self.cur.fetchall()
self.desconeta()
return res
def executa_DML(self, sql):
self.conecta()
self.cur.execute(sql)
self.con.commit()
self.desconeta()
instanc = conexaoDB()
cursor = instanc.conecta()
cursor.executa_DQL("SELECT * FROM tb_usuarios")
------------------------------------------------------------------------------------------------------------------------
segue Erro:
"C:\Users\Sergio Iescas\AppData\Local\Programs\Python\Python39\python.exe" "C:/Users/Sergio Iescas/PycharmProjects/automatiza2022/teste conexao.py"
Traceback (most recent call last):
File "C:\Users\Sergio Iescas\PycharmProjects\automatiza2022\teste conexao.py", line 38, in <module>
cur.executa_DQL('SELECT * FROM tb_usuarios')
AttributeError: 'NoneType' object has no attribute 'executa_DQL'
Process finished with exit code 1
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
instanc = conexaoDB() *\ instancia da classe \*
cursor = instanc.conecta() *\ variável cursor recebe atributos na classe com a função conecta() \*
cursor.executa_DQL("SELECT * FROM tb_usuarios") *\ variável cursor chama execução do método dentro da classe com os parametros consulta mySQL \*
classe de conexão .py