Я очень новичок в Python. Уроки еще не выучены. Использование Python 3.2.2. Пытался реализовать некоторую процедурную логику Си. Мой код распространяется на 2 файла следующим образом.
этот файл называется date.py
dd,mm,yy=0,0,0
def isValidDate(d,m,y):
if(d>=1 and d<=31 and m>=1 and m<=12):
dd,mm,yy=d,m,y #problem
print(dd,mm,yy) #problem
print(d,m,y) #problem
return True
else:
return False
def printDate():
print(dd,mm,yy) #problem
этот файл называется module1.py
import date
def main():
dd,mm,yy = 23,1,1984
valid = date.isValidDate(dd,mm,yy) #problem
print (valid)
date.printDate()
date.dd=22 #problem
date.printDate()
if __name__ == '__main__':
main()
Строки, которые я прокомментировал как «проблему», вызывают у меня проблемы.
Когда выполняется оператор в module1.py
(то есть "date.dd=22"
), значение глобальной переменной в date.py
изменяется на 22
и остается таким же.
Но когда я вызываю функцию isValidDate()
, даже если условие теста пройдено, назначение не кажется постоянным. Оператор локальной печати в функции isValidDate()
показывает, что "dd"
назначено значение, но в функции main()
вызов printDate()
показывает исходные значения.
Что происходит?