LoginSignup
yossy201410
@yossy201410

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Pyxelで外部のpythonファイルからアクセスしようとするとエラーが起きる

Q&AClosed

解決したいこと

PythonのPyxelでゲームを作っています。
外部のファイルのクラスで引数を設定するときに、エラーが発生しました。
解決方法を教えてください。

発生している問題・エラー

TypeError: Block.__init__() takes 4 positional arguments but 5 were given

スクリーンショット 2023-03-22 20.03.38.png

該当するソースコード

block = Block(x * size + r, y * size + r, r, color)

自分で試したこと

pythonを再インストール、import文を変えるなどして試してみましたが、エラーが起きました。

0

1Answer

「引数の定義は4個なのに5個与えられた」というエラーです。
Blockは自作クラスですか?
Blockクラスの__init___メソッドの最初の引数はselfで、他に4個の引数定義が書いてありますか?

エラーになる定義例
>>> class Block:
...     def __init__(a, b, c, d):
...         pass
...
>>> Block(1, 2, 3, 4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Block.__init__() takes 4 positional arguments but 5 were given
エラーにならない定義例
>>> class Block:
...     def __init__(self, a, b, c, d):
...         pass
...
>>> Block(1, 2, 3, 4)
<__main__.Block object at 0x7fd32ab9d590>
1Like

Comments

  1. @yossy201410

    Questioner
    shiracamusさん、回答ありがとうございます。
    指摘された場所を確認してみたところ、クラスの最初の引数にselfが入っていませんでした。
    ありがとうございます。

Your answer might help someone💌