ホームページ > バックエンド開発 > Python チュートリアル > PythonでのTypeErrorエラー解決策の詳細な説明

PythonでのTypeErrorエラー解決策の詳細な説明

高洛峰
リリース: 2017-03-27 16:52:16
オリジナル
14404 人が閲覧しました

初心者が 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 =======================

トレースバック (最後の呼び出し):

ファイル "H :pythonbounce1.py"、11 行目、

myBall=Ball("red","small","down")

TypeError: このコンストラクターは引数を取りません



エラーの理由は、 Python でのコンストラクターの記述形式は __init__ ですが、_init_ ではありません。つまり、init の両側に 1 つのアンダースコアではなく、2 つのアンダースコアがあります。

修正後如下:

class Ball:

def __init__(self,color,size,direction):

self.color=color

self.size=size

self.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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート