Python Python typeError hatası

Black X6

Picopat
Katılım
13 Eylül 2023
Mesajlar
193
Çözümler
3
Daha fazla  
Cinsiyet
Erkek
Öğrenci kayıt uygulaması yapıyorum ve dbmanager bölümünde şu kodu yazdığımda hep bir hata ile karşılaşıyorum.
Kod:

Python:
import mysql.connector
from datetime import datetime.
from connection import connection.
from student import Student.
from teacher import Teacher.

class DbManager:
 def __init__(self,connection):
 self.connection1 = connection.
 self.cursor1 = self.connection1.cursor()

 def getStudentById(self, id):
 sql = "select * from student where id = %s"
 value = (id,)
 self.cursor.execute(sql,value)
 try:
 obj = self.cursor.fetchone()
 return Student(obj[0],obj[1],obj[2],obj[3],obj[4],obj[5],obj[6])
 except mysql.connector.Error as err:
 print("error:",err)

 def getStudentsByClassId(self, id):
 pass.

 def addstudent(self, student: Student):
 pass.

 def editstudent(self, student: Student):
 pass.

 def addteacher(self, teacher: Teacher):
 pass.

 def editteacher(self, teacher: Teacher):
 pass.

db = DbManager()
student = db.getStudentById(2)
print(student.name)
print(student.surname)

Hata:
Traceback (most recent call last):
File "c:\Users\Emre\Desktop\Python3\school.py\dbmanager.py", line 39, in <module>
db = DbManager()
^^^^^^^^^^^
TypeError: DbManager.__init__() missing 1 required positional argument: 'connection'
 
import mysql.connector from connection import connection from student import Student from teacher import Teacher class DbManager: def __init__(self, connection): self.connection1 = connection self.cursor1 = self.connection1.cursor() def getStudentById(self, id): sql = "select * from student where id = %s" value = (id,) self.cursor1.execute(sql, value) try: obj = self.cursor1.fetchone() return Student(obj[0], obj[1], obj[2], obj[3], obj[4], obj[5], obj[6]) except mysql.connector.Error as err: print("error:", err) def getStudentsByClassId(self, id): pass def addStudent(self, student: Student): pass def editStudent(self, student: Student): pass def addTeacher(self, teacher: Teacher): pass def editTeacher(self, teacher: Teacher): pass connection = connection() db = DbManager(connection) student = db.getStudentById(2) print(student.name) print(student.surname)

Umarım işe yarar
 
import mysql.connector from connection import connection from student import Student from teacher import Teacher class DbManager: def __init__(self, connection): self.connection1 = connection self.cursor1 = self.connection1.cursor() def getStudentById(self, id): sql = "select * from student where id = %s" value = (id,) self.cursor1.execute(sql, value) try: obj = self.cursor1.fetchone() return Student(obj[0], obj[1], obj[2], obj[3], obj[4], obj[5], obj[6]) except mysql.connector.Error as err: print("error:", err) def getStudentsByClassId(self, id): pass def addStudent(self, student: Student): pass def editStudent(self, student: Student): pass def addTeacher(self, teacher: Teacher): pass def editTeacher(self, teacher: Teacher): pass connection = connection() db = DbManager(connection) student = db.getStudentById(2) print(student.name) print(student.surname)

Umarım işe yarar

Benim kodun aynısı bu?
 
Son düzenleyen: Moderatör:
Dbmanager olarak oluşturduğunuz sınıf bir adet connection değeri istiyor ya buna __init__ fonksiyonunda default değer verin (bundan emin değilim) ya da dB nesnesini oluşturuken orada yazın.
 

Yeni konular

Geri
Yukarı