takes exactly 2 arguments (3 given)のようなエラーの対応
pythonのコードを動かす際に
"takes exactly 2 arguments (3 given)"
あるいは
"takes 2 positional arguments but 3 were given"
のようなエラーに直面したら、これはクラスのメソッドの引数にselfを書き忘れたからだと考えられます。
例えば
class myClass():
def my_func(a, b):
return a*b
classA=myClass()
ans=classA.my_func(4,3)
print(ans)
のようなコードではエラーが出る。
以下のように書き換えることでエラーはなくなる。
class myClass():
def my_func(self,a, b):
return a*b
classA=myClass()
ans=classA.my_func(4,3)
print(ans)
これでちゃんと12 と出力される。