2016-12-28 5 views
-1

Привет У меня есть два файла python: project.py и test.py.NameError: Global Name 'test' не определен

Я пытаюсь импортировать переменную из test.py в 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 я получаю NameError: глобальное имя 'тест' не определено в project.py self.servo = test.apple (n)

Может ли кто-нибудь указать, что не так в моей треске е?

ответ

2

Что вы ожидаете от test?

from test import * 

Это загрузит все найденное в тесте, которое в данном случае является test.py. Так что будет загружать следующее в глобальное пространство имен:

  • newton (со значением 0)
  • apple (функции)

Он не загружается любой символ с именем test, поэтому, когда вы вызываете test.apple в свой метод __init__, вы получаете NameError.

Если вы хотите импортировать test.py в test, то вместо этого нужно просто импортировать сам модуль, а не импортировать вещи из модуля:

import test 
+0

@ Dan Lowe я вынул тест в тесте. apple (n), но я все равно получаю NameError, но на этот раз с n. На самом деле я не слишком уверен, как я могу сделать self.servo взять значение n – Sevyon

+0

@Sevyon До вас _use_ 'n' в строке 4 project.py, это никогда не упоминается. Этого не существует. Я думаю, вам, возможно, понадобится еще немного прочитать о области переменных и о том, как создавать классы в Python. –

Смежные вопросы