Estou em duvida de como retornar um metodo no tkinter orientado a objetos. Todos os códigos abaixo funcionam, mas no curso da alura é ensinado a colocar "return" ao final dos metodos, e em alguns abaixo eu não coloquei. Qual das organizações abaixo é a correta? Com ou sem "self" dentro do metodo e com o sem "return" ao realizar o "pack" do widget?
Organização número 1
from tkinter import *
class App:
def __init__(self):
self.root = Tk()
self.root.geometry('200x200+600+100')
self.cria_entry()
self.root.mainloop()
def cria_entry(self):
entry = Entry(self.root, font='Raleway', justify='center', width=4, relief=FLAT)
entry.pack()
if __name__ == '__main__':
App()
Organização número 2
from tkinter import *
class App:
def __init__(self):
self.root = Tk()
self.root.geometry('200x200+600+100')
self.cria_entry()
self.root.mainloop()
def cria_entry(self):
self.entry = Entry(self.root, font='Raleway', justify='center', width=4, relief=FLAT)
self.entry.pack()
if __name__ == '__main__':
App()
Organização número 3
from tkinter import *
class App:
def __init__(self):
self.root = Tk()
self.root.geometry('200x200+600+100')
self.cria_entry()
self.root.mainloop()
def cria_entry(self):
self.entry = Entry(self.root, font='Raleway', justify='center', width=4, relief=FLAT)
return self.entry.pack()
if __name__ == '__main__':
App()
Organização número 4
from tkinter import *
class App:
def __init__(self):
self.root = Tk()
self.root.geometry('200x200+600+100')
self.cria_entry()
self.root.mainloop()
def cria_entry(self):
entry = Entry(self.root, font='Raleway', justify='center', width=4, relief=FLAT)
return entry.pack()
if __name__ == '__main__':
App()
Desde já agradeço qualquer tentativa de solucionar minha duvida