2016-08-22 27 views
-3

この予期しないキーワード引数' size 'を修正するにはどうすればよいですか?TypeError:__init __()予期しないキーワード引数 'size


Traceback (most recent call last): 
     File "H:\Documents\Astro game\astro games6.py", line 73, in <module> 
     main() 
     File "H:\Documents\Astro game\astro games6.py", line 61, in main 
     new_asteroid = Asteroid(x = x, y = y,size = size) 
    TypeError: __init__() got an unexpected keyword argument 'size' 

フルコード:

import random 
from superwires import games 

games.init(screen_width = 640, screen_height = 480, fps = 50) 

class Asteroid(games.Sprite): 
    """ An asteroid wich floats across the screen""" 
    SMALL = 1 
    MEDIUM = 2 
    LARGE = 3 
    images = {SMALL : games.load_image("asteroid_small.bmp"), 
       MEDIUM : games.load_image("asteroid_med.bmp"), 
       LARGE : games.load_image("asteroid_big.bmp")} 
    speed = 2 

    def _init_(self, x, y, size): 
     """Initialize asteroid sprite""" 
     super(Asteroid, self)._init_(
      image = Asteroid.images[size], 
      x = x, y = y, 
      dx = random.choice([1, -1]) *Asteroid.SPEED* random.random()/size, 
      dy = random.choice([1, -1]) *Asteroid.SPEED* random.random()/size) 

     self.size = size 


    def update (self): 
     """ Warp around screen""" 
     if self.top>games.screen.height: 
      self.bottom = 0 

     if self.bottom < 0: 
      self.top=games.screen.height 

     if self.left > games.screen.width: 
      self.right = 0 

     if self.left < 0: 
      self.left = games.screen.width 

class Ship(games.Sprite): 
    """The player's ship""" 
    image = games.load_image("ship.bmp") 
    ROTATION_STEP = 3 

    def update(self): 
     if games.keyboard.is_pressed(games.K_LEFT): 
      self.angle -= Ship.ROTATION_STEP 
     if games.keyboard.is_pressed(games.K_RIGHT): 
      self.angle += Ship.ROTATION_STEP 


def main(): 
    nebula_image = games.load_image("nebula.jpg") 
    games.screen.background = nebula_image 

    for i in range(8): 
     x = random.randrange(games.screen.width) 
     y = random.randrange(games.screen.height) 
     size = random.choice([Asteroid.SMALL, Asteroid.MEDIUM, Asteroid.LARGE]) 
     new_asteroid = Asteroid(x = x, y = y,size = size) 
     games.screen.add(new_asteroid) 


    the_ship = Ship(image = Ship.image, 
        x = games.screen.width/2, 
        y = games.screen.height/2) 

    games.screen.add(the_ship) 

    games.screen.mainloop() 

main() 

私はsize引数を削除しようとしたが、それはコード内でより多くのエラーを引き起こしました。サイズのタグを何か他のものに変更して、それが役に立っているかどうかを確認しました。だから、私はこのコードを動作させるために必要なもののためのものです。私は学校でクラスプロジェクトのためにそれに取り組んでいます。英語は私の母国語ではないので、私はクラスメートにこれを書いてもらいました。

ありがとうございます。

+2

引数リストからサイズを削除してください... – Alexander

+3

コードを表示してください。どのオブジェクトを初期化しようとしていますか?このオブジェクトを書いた場合、 '__init__'はパラメータ' size'を持っていますか?これが外部コードの場合、パラメータ 'size'は文書化されていますか? –

+1

小惑星クラス__init __()関数コード –

答えて

0

あなたの小惑星クラスは、__init__の代わりに_init_と定義しています。 Pythonの魔方法では、どちらの側にも2つのアンダースコアが必要です。

-2

コードのsize引数を削除します。

注:Pythonモジュール名にはスペースを入れてはいけません。別のモジュールでインポートすることはできません。

+1

を共有できますか?彼に 'size'引数が必要な場合はどうなりますか?彼はただそれを削除すべきではありません。彼は問題を解決する方法を学ぶべきです。 –

関連する問題