初心者が Python を学習する際に多くの落とし穴に遭遇するでしょう。その 1 つについて以下で詳しく説明します。
Python でオブジェクト指向プログラムを作成する場合、初心者は「TypeError: このコンストラクターは引数を取りません」というエラーに遭遇する可能性があります。
たとえば、次のプログラム:
class Ball:
def _init_(self,color,size,direction):
self.color=color
self.size=size
self.direction=direction
def bounce( self) ; "私のボールは",myBall.size
print "私のボールは",myBall.color
print "私のボールの方向は",myBall.direction
print "これからボールをバウンドさせます"
print
myBall.bounce()
print "現在のボールの方向は",myBall.direction
実行時にエラーが報告されます:
================= ====== RESTART: H:pythonbounce1.py =======================
トレースバック (最後の呼び出し):
myBall=Ball("red","small","down")
TypeError: このコンストラクターは引数を取りません
エラーの理由は、 Python でのコンストラクターの記述形式は __init__ ですが、_init_ ではありません。つまり、init の両側に 1 つのアンダースコアではなく、2 つのアンダースコアがあります。
修正後如下:
class Ball:
self.color=color
self.size=sizeself.direction=direction
デフォルトバウンス(自分): D iF Self.direction == "DOWN":
Self.direction = "UP"
Myball = Ball ("Red", "Small", "DOWN")
Print "ボールを作成しました。"
Print "私のボールは",myBall.size
print "私のボールは",myBall.color
print "私のボールの方向は",myBall.direction
print "これからボールをバウンスさせます"
print
myBall.bounce ()
print "Now the ball's Direction is",myBall.direction
これが正しい実行結果です:
======================= = 再起動: H:pythonbounce1.py =======================
ボールを作成しました。
私のボールは小さいです
私のボールは赤いです
これからボールをバウンドさせます
ボールの方向は上です
以上がPythonでのTypeErrorエラー解決策の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。