次のようup
に、クラス内の1つのパラメーターを使用して関数を定義しようとしています。X
class X:
def __init__(self):
self.elem=[]
def i(self, new):
self.elem.append(new)
self.up(self,len(self.elem)-1) <= error here
def up(self, n):
print n
border = X()
a = [2,4,3,1]
for i in a:
border.i (i)
エラーは次のようになります。
$ Traceback (most recent call last):
File "p.py", line 60, in <module>
border.i (i)
File "prim.py", line 50, in i
self.up(self,len(self.elem)-1)
TypeError: up() takes exactly 2 arguments (3 given)
$
i
このように呼び出すと、self.up(self)
コンパイルprint n
されて表示されます。
$ <__main__.X instance at 0x7f7a7ddf0128>
<__main__.X instance at 0x7f7a7ddf0128>
<__main__.X instance at 0x7f7a7ddf0128>
<__main__.X instance at 0x7f7a7ddf0128>
$