Найти - Пользователи
Полная версия: Изменить значение переменной в другом модуле
Начало » Python для новичков » Изменить значение переменной в другом модуле
1
smile789
Не получается изменить значение глобальной переменной другого модуля.
Я предполагаю, что значение должно стать True, а в результате вывода значения перменной вижу по прежнему False. Почему так?
from temp3 import my_var, print_var
my_var = True
print_var()
terabayt
my_var = True
этой строчкой вы создаете переменную, а не изменяете
import tmp3
tmp3.my_var = True
tmp3.print_var()
или сделать функцию которая изменяет значение переменной
set_myvar(True)
smile789
terabayt
import tmp3
tmp3.my_var = True
tmp3.print_var()

Да вот так вот у меня сейчас и сделано, просто интересно почему когда применяешь другой вид импорта почему-то получается что создаю перменную, а не изменяю.
terabayt
smile789
просто интересно почему когда применяешь другой вид импорта почему-то получается что создаю перменную, а не изменяю.
было бы интересно если было бы наоборот
py.user.next
smile789
просто интересно почему когда применяешь другой вид импорта почему-то получается что создаю перменную, а не изменяю.
Потому что это не переменные, а имена, связанные с объектами.
Если в других языках переменные - это области памяти, названные определёнными именами, то в питоне нет переменных, а аналогичные конструкции выполнены в виде связок имён с объектами. Благодаря этому имена можно как привязывать к объектам, так и отвязывать от них.

>>> import sys
>>> 
>>> sys.version
'3.3.2 (default, Feb 11 2014, 10:35:02) \n[GCC 4.8.2 20131212 (Red Hat 4.8.2-7)]'
>>> 
>>> sys = print
>>> sys('hello')
hello
>>>

Каждый объект определяет своё пространство имён, модуль - это тоже объект. С одним объектом может быть связано множество имён. Поэтому имена одного и того же объекта могут находиться в разных модулях.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB