-1

「pass」コマンドを削除してクラスを空白のままにすると、エラーが表示されます:

File "class_distance.py", line 6
    point1=distance()   
         ^
IndentationError: expected an indented block

このコードは、2 点間の距離を計算することが期待されています。コードは次のとおりです。

import math 
class distance(object):
     pass


point1=distance()   
point2=distance()
point1.x=input("x=")
point2.x=input("x=")
point1.y=input("y=")
point2.y=input("y=")


def main(point1,point2):


    dx = point1.x - point2.x
    dy = point1.y - point2.y
    dist = math.sqrt(dx**2 + dy**2)
    print dist

main(point1,point2)
4

4 に答える 4

4

コロンで行を終了すると、複合ステートメントが宣言されます。Python は、そのステートメントの後にコード ブロックが続くことを期待します。passキーワードは、まだブロックに入りたくないというあなたの言い方です。

Python では空白が重要であるため、空のステートメントを許可しないと、コードが読みやすくなり、解析しやすくなります。コロンの後にインデントされたブロックが期待され、何もない場合はエラーであり、話の終わりです。

EDIT : ちなみに、Python はそれがクラス宣言の本体であると考えており、適切にインデントされていることを期待しているためIndentationError、宣言ではなく次のステートメントでエラーが発生します。class

于 2013-05-26T06:52:27.207 に答える
2

これは、Python が見た後にクラス本体を期待しているためです。

class distance(object):

特に、コロンは、次の行をインデントしてクラスの本体を入力することを示しています。しかし、インデントせずにそのままプログラミングを続けると、Python は動揺し、クラス本体をスキップしたと文句を言うでしょう。

空のブロックを許可するために、pass基本的にクラスや関数、または通常はどこに行くかのプレースホルダーとして機能するキーワードがあります。

class distance(object):
    pass # Let's python know we didn't forget the class body
keep.on.programming()
于 2013-05-26T06:53:05.570 に答える
0

クラスには本体が必要です。したがって、パスを削除すると、次のステートメントが本文として検索されますが、クラス定義と同じレベルにあるため、Python は IndentationError があると言います。

于 2013-05-26T06:52:25.443 に答える
0

Python のコード ブロックには何らかのコードが含まれている必要があるため、何も実行させたくない場合は、pass. 従ってIndentationError

于 2013-05-26T20:31:22.560 に答える