Python OOP варианты использования наследования и вызов наследуемого объекта - PullRequest
1 голос
/ 30 января 2020

Я пытаюсь вызвать переменную экземпляра моего унаследованного класса account_validation из моего класса PageTwo. Я думаю, что я могу получить ошибку из-за моего унаследованного класса selfService, основными функциями которого является отображение различных tkinter windows. Кредит @bryan oakely за интерфейс

 class selfService(tk.Tk, Toplevel):

     def __init__(self, *args, **kwargs):

     selfService.database = Database()

     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 PageTwo(tk.Frame, account_validation):
     def __init__(self, parent, controller):

         account_validation.__init__(self)
         print(self.test)

         tk.Frame.__init__(self, parent)


class account_validation():
    def __init__(self):
        self.test = 'test'

Я подлежу:

print (self.test) account_validation. init (self) TypeError: init () отсутствует 2 обязательных позиционных аргумента: 'parent' и 'controller'

Более того, я хочу понять почему люди предпочли бы наследовать класс и обращаться к его свойствам таким образом, а не создавать экземпляр этого класса в другом классе и обращаться к свойствам этого класса таким образом? Каков лучший сценарий для обоих? Если я использую несколько методов класса из унаследованного класса, я должен оставить его унаследованным?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...