2015-06-12 2 views
-1

Структура каталога:AttributeError: «модуль» объект не атрибут «globe1»

ga/ : 

    PP.py 

    this.py 

    that.py 

tripathi/: 

    nn.py # contains function net 

    neuron.py #contains function node 

    aicc.py # contains function AICC 

    blah.py 

    variable.py 

    __init__.py 

Я пытаюсь использовать каталог «Трипатхи» в качестве модуля. Следовательно, __init__.py

#__init__.py 

from nn import net 

from neuron import node 

from aicc import AICC 

#variable.py 

def initialise(): #to initialise global variables 


    global globe1, globe2, globe3 

    globe1 = 8 

    globe2 = [1,2,3,4,5] 

    globe3 = "bakar" 

Файл variable.py содержит некоторые глобальные переменные, которые будут использоваться в this.py, that.py и PP.py

#this.py 

from tripathi import node 

from tripathi import AICC#function AICC in aicc.py 

from tripathi import variables #file variables.py 

variables.initialise() #all global variables initialised 

this_one = variables.globe1 

Теперь that.py имеет


#that.py 

import this 

AttributeError : 'module' object has no attribute 'globe1' 

Почему ошибка? Делает ли import this заявление (в that.py) не импортирует все модули, импортированные в this.py?

Редактировать: Я использую ноутбук IPython.

ответ

0

Использование глобального ключевого слова недостаточно. Вы должны объявить переменную на уровне модуля:

#variable.py 

globe1 = 8 
globe2 = [1,2,3,4,5] 
globe3 = "bakar" 

def initialise(): 
    pass # nothing to do there anymore. 
+0

Так что, если я хочу использовать 'globe1' переменную' that.py' ... Мне нужно импортировать переменные в 'that.py' отдельно? –

+0

'this.py' работает отлично. Тем не менее, нужно ли размещать переменную 'globe1' вне' initialise() '? –