2017-04-20 40 views
0

私はPythonで初心者だが、私はそれを定義する前に、「重力」機能と呼ばれ、私はコードを実行しようとしたとき、Pythonインタプリタは、ここでは、このエラーメッセージユーザ定義関数gravity()を呼び出すと、このエラーメッセージが表示されるのはなぜですか?

Traceback (most recent call last): 
    File "C:/Python34/day1.py", line 30, in <module> 
    if __name__ == "__main__": main() 
    File "C:/Python34/day1.py", line 22, in main 
    gravity(78,98) 
UnboundLocalError: local variable 'gravity' referenced before assignment 

を作るように見えることは、コード

です
def main(): 

    person = people() 
    person2 = people("joel max") 



    print(person2.whatname()) 


    gravity(78,98) 


    def gravity(mass,accel): 
     force = mass * accel 

     return force 

if __name__ == "__main__": main() 

インデントを調整しようとしましたが、まだ機能していません。

+4

定義する前に 'gravity() 'を呼び出すためです。 'def'の後に呼び出しを移動します –

+0

なぜ' main'の中に 'gravity'を定義していますか?なぜあなたはそれを無視して呼び出したときに戻り値を破棄しますか? – user2357112

+0

私はそれに渡されたパラメータに基づいて重力の値をプリントアウトしたいと思っています.... –

答えて

0

定義する前に重力に電話をかけようとしました。また、メインプログラム内で定義する理由もありません。別の外部機能にします。以下の変更の後、唯一の問題は機能がないことです

def gravity(mass,accel): 
    force = mass * accel 

    return force 


def main(): 
    person = people() 
    person2 = people("joel max") 

    print(person2.whatname()) 

    gravity(78,98) 

if __name__ == "__main__": 
    main() 
+0

ありがとう....実際には人々はクラスです...私はコードのその部分を含まなかった –

+0

将来的に。 ..ヘルプドキュメントの投稿ガイドラインを読み、それに従ってください。 [最小、完全で検証可能な例](http://stackoverflow.com/help/mcve)がここに適用されます。投稿したコードをファイルに貼り付けて実行し、問題を再現できるようにする必要があります。 – Prune

関連する問題