У меня есть два скрипта sources.py
и nest.py
. Они что-то вроде этого
источники.py
import numpy as np
from nest import *
def make_source():
#rest of the code
def detect():
Nest = nest()
Nest.fit()
if __name__=='main':
detect()
гнездо.py
import numpy as np
from sources import *
class nest(object):
def _init_(self):
self.source = make_source()
def fit(self):
#rest of the code
Когда я запускаю скрипт типа python sources.py
, он работает нормально.
Но в среде ноутбука Ipython, если я сделаю следующее
In [1]: from sources import *
In [2]: detect()
Я получаю следующую ошибку
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-5-e9c378341590> in <module>()
----> detect()
C:\sources.pyc in detect()
--> 7 Nest = nest()
C:\nest.pyc in _init_()
--> 7 self.source = make_source()
NameError: global name 'make_source' is not defined
Я смущен тем, почему это происходит. Можете ли вы дать мне представление о том, как это отличается в обоих случаях и как это решить?
'_init_' != '__init__'
. У вас есть два файла, которые циклическиimport
изменяются друг от друга. Где код, который вы на самом деле используете? Предоставьте минимальный пример, который действительно работает и воспроизводит проблему. Почему бы вам не объединить их в один сценарий? - person jonrsharpe   schedule 16.07.2014