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 と出力される。