Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 22, 2011 16:54:49

weez
От:
Зарегистрирован: 2011-01-24
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите разобраться с import

python 2.7.2
c.py

n=0
b.py
class cl1:
def set(self):
import c
c.n=1
del(c)
main.py
import с
import b
t=b.cl1()
t.set()
del(b)
del(t)
del(c)
import c
print c.n
почему после удаление всех сылок на модуль c и повторного его импорта переменая n в модуле c все равно имеет значение 1, а не 0?
как можно импортировать модуль с заново инициализированными переменными?



Отредактировано (Окт. 22, 2011 16:58:14)

Офлайн

#2 Окт. 22, 2011 17:13:48

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

помогите разобраться с import

используйте reload



Офлайн

#3 Окт. 22, 2011 17:28:29

Fibio
От:
Зарегистрирован: 2010-09-14
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

помогите разобраться с import

повторная команда import c фактические ничего не делает, в памяти остается все тот же модуль с, загруженный первой командой. Для перезагрузки модуля reload©



Офлайн

#4 Окт. 22, 2011 17:41:52

weez
От:
Зарегистрирован: 2011-01-24
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите разобраться с import

спасибо, reload то что надо.



Офлайн

#5 Окт. 22, 2011 19:41:40

ReaL_HarDCorE
От:
Зарегистрирован: 2011-01-19
Сообщения: 84
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите разобраться с import

doza_and
используйте reload
Ооо, Андрюха, и ты туть!?))



Офлайн

#6 Окт. 27, 2011 15:33:07

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

помогите разобраться с import

>почему после удаление всех сылок на модуль c и повторного его импорта переменая n в модуле c все равно имеет значение 1, а не 0?
как можно импортировать модуль с заново инициализированными переменными?

Потому что инструкция import относительно какого либо модуля может работать только один раз, т. к. она тратит не мало ресурсов

Для обновления загруженного модуля существует функция reload() в 2.X и функция reload() из модуля imp в 3.X



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version