Python's global
является глобальным только для модуля.
import ChangeVar
ChangeVar.Print()
ChangeVar.Print()
ChangeVar.Change()
ChangeVar.Print()
ChangeVar.Print()
Это сработает, однако, пересмотрите ваше использование global
- это повсеместно плохая практика.Должен быть более чистый способ делать то, что вы хотите.Попробуйте использовать класс внутри вашего модуля.
# ChangeVar.py
class ChangeVar(object):
def __init__(self):
self.Print=self.Print1
def Print1(self):
print "1--"
def Print2(self):
print "2--"
def Change(self):
self.Print=self.Print2
Используется так:
#UseVar.py
from ChangeVar import ChangeVar
cv = ChangeVar()
cv.Print()
cv.Print()
cv.Change()
cv.Print()
cv.Print()
Я также хотел бы отметить, что согласно Руководству по стилю Python lowercase_with_underscores
является предпочтительным стилем именования для функций, а lowercase
для имен модулей.