2016-12-28 41 views
-1

こんにちは私は2つのpythonファイルproject.pyとtest.pyを持っています。NameError:グローバル名 'test'が定義されていません

私は変数をtest.pyからproject.pyにインポートしようとしています。グローバル名 'テスト':私はNameErrorを得るproject.py私は実行すると

test.py

newton = 0 
def apple(n): 
    global newton 
    n = newton 
    time.sleep(15) 
    n = n + 1 
    return 

とproject.py

from test import * 
class search(object): 
     def __init__(self): 
      self.servo = test.apple(n) 
     def run(self): 
      while (self.servo < 1): 
       print "hELLO" 

中:後

コードですはproject.pyで定義されていません。self.servo = test.apple(n)

私のコードで何が間違っているのかe?

答えて

2

testさんは何を期待していますか?

from test import * 

これはtestにあるすべてのものを読み込みます。この場合はtest.pyです。そのとき、それはtestをという名前のシンボルをロードしない

  • apple(機能)(0の値で)

    • newton:だから、グローバル名前空間に次のようにロードします__init__メソッドでtest.appleに電話するとNameErrorとなります。

      あなたはtestとしてtest.pyインポートする場合は、あなただけではなくからモジュールをものをインポートしていない、モジュール自体をインポートする必要があります。

      import test 
      
  • +0

    ダン・ロウ@私はテストにテストを削除しました。 apple(n)しかし、私はまだNameErrorを取得しますが、今回は 'n'で取得します。実際、私はself.servoをどのようにしてnの値をとることができるのかよく分かりません。 – Sevyon

    +0

    @Sevyon project.pyの4行目に_use_ 'n'が出るまで、これは言及されていません。それは存在しません。私はあなたが変数スコープとPythonでクラスを構築する方法についていくつかの読書をする必要があるかもしれないと思う。 –

    関連する問題