2017-08-14 4 views
-2

私はPythonの学習Pythonの本からゲームをコピーしています。 本のウェブサイトはpython for kidsです。コードを以下に示します。 TkinterゲームのクラスオブジェクトエラーPython for Kidsの書籍http://python-for-kids.com

from tkinter import * 
import random 
import time 

Class Ball: 
    def _init_(self, canvas, color) 
     self.canvas = canvas 
     self.id = canvas.create_oval(10, 10, 25, 25, fill=color) 
     self.canvas.move(self.id, 245, 100) 
    def draw(self): 
     pass 

tk = Tk() 
tk.title('Game') 
tk.resizable(0,0) 
tk.wm_attributes('-topmost, 1) 
canvas = Canvas(tk, width=500, height=400, bd=0, highlightthickness=0) 
canvas.pack() 
tk.update() 
ball = Ball(canvas, 'red') 
while 1: 
    tk.update_idletasks() 
    tk.update() 
    time.sleep(0.01) 

は、それが簡単に理解できるようにするために、プログラム中のいくつかの追加のスペースがありましたが、私はこの質問ではこれらのスペースを見送るだろう。エラーは以下のとおりです。

お手伝いいただければ幸いです。可能であれば、あなたの助けに感謝します。

+3

'「_init_」=「__init __」' – jonrsharpe

+0

ここにあなたのコードの書式設定を修正&それはあなたのマシンに何があるかと同一であることを確認してください!。あなたのコードにはいくつかの問題があります。まず、 '*'はあなたのインポートステートメントから失われました。次に、そのメソッドは '_init_'ではなく' __init__'という名前にする必要があります。そして、あなたは 'tk.wm_attributes( ' - topmost、1)'の最後の引用符を中止しました。また、IDLE内でTkinterコードを実行するのは良い考えではありません.Tkinter自体を使用すると、混乱することがあります。 –

+0

この質問と同じエラーが表示されます。https://stackoverflow.com/questions/23176597/python-object-takes-no-parameters-error –

答えて

0

あなたのクラスが正しく定義されていないようです。クラスの「C」のための資本とクラス自体のための無カッコ...正しいはないだろう:

class Ball(): 

も、後であなたがCanvasクラスを呼び出すようだが、あなたは、任意の輸入を持っていないようですここのTkやCanvasをスニペットに入れてください。だからキャンバスを使うにはどこからでもインポートしなければなりません。それはこのようになります:

from somewhere import Canvas 
+0

'import'ステートメントはそこにあります、ちょうど少しマングルされ、コードブロックから省略されました。そしてPython 3では、クラス名の後に括弧は必要ありません(他のクラスから派生している場合を除きます)。 –

関連する問題