さて、これに出くわしたとき、私はいくつかの情報源を調べていました:
>>> def __parse(self, filename):
... "parse ID3v1.0 tags from MP3 file"
... self.clear()
... try:
... fsock = open(filename, "rb", 0)
... try:
... fsock.seek(-128, 2)
... tagdata = fsock.read(128)
... finally:
... fsock.close()
... if tagdata[:3] == 'TAG':
... for tag, (start, end, parseFunc) in self.tagDataMap.items():
... self[tag] = parseFunc(tagdata[start:end])
... except IOError:
... pass
...
それで、私はそれをテストすることにしました。
>>> __parse("blah.mp3")
そして、私はこのエラーを受け取りました:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __parse() takes exactly 2 arguments (1 given)
これに遭遇したのはこれが初めてではなく、引数パラメータリストに自分自身を含めることを意図していると思い続けていますが、それは正しくないことを知っています。誰かが私が遊んでみようとしているコードでこれがよく起こる理由を説明してもらえますか?それは用語についての私のレベルの理解のためだと思います、私はinitまたはselfが何をするのか、またはなぜそれが関連するのかさえほとんど理解していません。def x(b):printbはdefx(self、b)と同じです:self.b = b print self.bではありませんか?なぜそんなに重要なのですか!
基本的な説明が欲しいので、これを頭から離れることができます、ありがとう。