Canvasをコンテナとして使用することについて巧妙な質問をしたかったのですが、サンプルコードを書くと、何か奇妙なことに出くわしました。これまでのコードは次のとおりです。
import Tkinter as tk
class CCanvas(tk.Canvas):
def __init__(self,master,*args,**kwargs):
super(CCanvas,self).__init__(master=master,*args,**kwargs)
if __name__ == '__main__':
root= tk.Tk()
cc = CCanvas(root)
cc.pack()
root.mainloop()
今、このコードはあまり役に立たないはずです。CCanvasクラスはCanvasから継承するだけで、何も実装せず、スーパークラスのコンストラクターを呼び出すだけです。これが機能しない理由はわかりません。しかし、これを実行すると、次のエラーが発生します。
super(CCanvas,self).__init__(master=master,*args,**kwargs)
TypeError: must be type, not classobj
誰かが私にこの振る舞いを説明し、多分それを修正する方法を教えてもらえますか?