Python Python typeError hatası

Black X6

Centipat
Katılım
13 Eylül 2023
Mesajlar
365
Çözümler
4
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
 

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.
 
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.

Hocam çözdüm (self, connection) değil de sadece (self) olması gerekiyormuş.
 
Hayır aynısı değil dB nesnesini oluşturuken connection parametresini vermiş arkadaş hatanızın kaynağı bu değeri vermemeniz.

Kodunuz tam olarak istediğiniz gibi mi çalışıyor?

Arkadaş kodu düzgün formda atmamış ondan ötürü fark etmem çok zor zaten.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…