Предположим, у меня есть 2 файла: frontend.py для отображения GUI и backend.py для функций базы данных. У меня проблема с наследованием класса базы данных с помощью super (). из # backend2.py в классе managerPage в # frontend.py
У меня ошибка:
frame = F (container, self) TypeError: init () отсутствует 2 обязательных позиционных аргумента: 'cn' и 'cur'
Я считаю, что это связано с init в классе tk.Frame, который я также унаследовал в классе managerPage. Я считаю, что класс selfService (который я переименовал для себя) зачислен пользователю @BryanOakley. Может ли кто-нибудь, пожалуйста, помогите мне успешно использовать super ().
frontend.py.
import backend2
class selfService(tk.Tk, Toplevel):
def __init__(self, *args, **kwargs):
#Toplevel.__init__(self)
self.employeeWindow = None
tk.Tk.__init__(self, *args, **kwargs)
self.container = tk.Frame(self)
self.container.pack(side="top", fill="both",
expand = True)
self.container.grid_rowconfigure(0,
weight=1)
self.container.grid_columnconfigure(0,
weight=1)
self.frames = {}
selfService.restart = False
for F in (StartPage, PageOne, PageTwo):
self.frame = F(self.container, self)
self.frames[F] = self.frame
self.frame.grid(row=0, column=0,
sticky="nsew")
self.show_frame(StartPage)
def show_frame(self, cont):
self.frame = self.frames[cont]
self.frame.tkraise()
class managerPage(tk.Frame,
validation.account_validation,backend2.Database):
def __init__(self, parent, controller, cn, cur):
tk.Frame.__init__(self,parent)
super().__init__(cn, cur)
print(self.cn)
backend2.py
class Database():
def __init__(self):
self.config = {
'user': 'root',
'password': 'root',
'host': 'localhost',
'database': 'myDatabase'}
self.cn =
mysql.connector.connect(**self.config)
self.cur = self.cn.cursor()