yaotti's diary

Software is Eating the World

継承とsuper

以下のコードが動かない.

#coding:utf-8
class pcls:
    def __init__(self):
        print "pcls"

class ccls(pcls):
    def __init__(self):
        super(ccls,self).__init__(self)
        print "ccls"

super(ccls,self).__init__(self)で,親クラスであるpclsの__init__()を呼んで欲しいけど(呼ぶはずなんだけど)エラー.

TypeError: super() argument 1 must be type, not classobj

typeって型か.pythonでの型とクラスの違いって何だろう.
あと,ソースの1行目or2行目に#coding:utf-8を書かないと日本語が通らないのはちょっとなぁ…