私は本「コンピューター科学者のように考える方法」に従ってPythonを学び、クラスとオブジェクトの章を理解するのに問題があります。
そこでの演習では、Rectangle と dx& dy という名前の 2 つのパラメーターを受け取る moveRect という名前の関数を作成するように指示されています。コーナーの x 座標に dx を追加し、コーナーの y 座標に dy を追加して、長方形の位置を変更する必要があります。
今、私が書いたコードが正しいかどうかはよくわかりません。それで、私が何をしようとしていたかをお話ししましょう。私がそれを正しく行っていたかどうか教えていただけますか?
最初にクラス Rectangle を作成し、次にそのインスタンスを作成して、座標 x と y の値、長方形の幅と高さなどの詳細を入力しました。
だから、これは以前の私のコードでした:
class Rectangle:
pass
rect=Rectangle()
rect.x=3.0
rect.y=4.0
rect.width=50
rect.height=120
def moveRect(Rectangle,dx,dy):
Rectangle.x=Rectangle.x + dx
Rectangle.y=Rectangle.y + dy
dx=raw_input("enter dx value:")
dy=raw_input("enter dy value:")
moveRect(Rectangle,dx,dy)
しかし、このコードを実行すると、属性エラーが発生し、クラス Rectangle には属性 x がありません
したがって、次の行を moveRect 関数に移動しました
rect=Rectangle()
rect.x=3.0
rect.y=4.0
rect.width=50
rect.height=120
したがって、コードは次のようになりました。
class Rectangle:
pass
def moveRect(Rectangle,dx,dy):
Rectangle.x=Rectangle.x + dx
Rectangle.y=Rectangle.y + dy
rect=Rectangle()
rect.x=3.0
rect.y=4.0
rect.width=50
rect.height=120
dx=raw_input("enter dx value:")
dy=raw_input("enter dy value:")
moveRect(Rectangle,dx,dy)
しかし、このコードではまだエラーが発生します。では、このコードの実際の何が問題なのですか? 現時点では、試行錯誤しながらこのコードを書いて、エラーが発生したときにその部分を変更したような気がします。これがどのように機能するかを正しく理解したいので、これに光を当ててください。
本「コンピューター科学者のように考える方法」の第 12 章で init が紹介されていないため、init を使用せずに行う必要があります。