Python 2.7 super () error

Tratando de crear la ventana Tkinter usando super (). Me sale este error:

super (Application, self) ._ init _ (master) TypeError: debe ser type, no classobj

Código:

import Tkinter as tk class Application(tk.Frame): def __init__(self, master): super(Application, self).__init__(master) self.grid() def main(): root = tk.Tk() root.geometry('200x150') app = Application(root) root.mainloop() main() 

Tkinter utiliza clases de estilo antiguo. super() solo se puede utilizar con clases de nuevo estilo .

Si bien es cierto que Tkinter usa clases de estilo antiguo, esta limitación puede superarse derivando adicionalmente la subclase Application del object (utilizando la herencia múltiple de Python):

 import Tkinter as tk class Application(tk.Frame, object): def __init__(self, master): super(Application, self).__init__(master) self.grid() def main(): root = tk.Tk() root.geometry('200x150') app = Application(root) root.mainloop() main() 

Esto funcionará siempre y cuando la clase Tkinter no intente ningún comportamiento que requiera ser una clase de estilo antiguo para funcionar (lo cual dudo mucho que lo haría). Probé el ejemplo anterior con Python 2.7.7 sin ningún problema.

Este trabajo alrededor fue sugerido aquí . Este comportamiento también se incluye de forma predeterminada en Python 3 (referenciado en el enlace).