Итак, все началось с вопроса об импорте объектов данных с помощью команды import, и я знаю о таких вещах, как pickle и json, и всяких других способах сделать это, которые вполне могут быть лучшими вариантами, но при попытке получить В своем мозгу я обнаружил поведение, в котором, я уверен, есть логика, но я не могу понять, что это за логика. Поэтому я продемонстрирую на супер простом примере ...
У меня есть файл с именем "toimport.py", состоящий только из определения словаря:
foo = {
"key1" : "value1",
"key2" : "value2",
"key3" : "value3",
}
Ниже я запускаю простую серию команд:
Сначала создайте словарь с именем «bar» и назначьте ему пару ключ / значение.
Во-вторых, импортируйте словарь в мой файл "toimport". Я не был уверен, затормозит ли импорт значение существующего ключа, похоже, что он делает:
Python 3.6.7 (v3.6.7:6ec5cf2, Oct 24 2018, 15:53:56)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> bar = {"key1":"blue"}
>>> print (bar)
{'key1': 'blue'}
>>> from toimport import foo as bar
>>> print (bar)
{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
ОК, так что, думаю, так работает импорт Python. Нет проблем. ;-) Но ... если я изменяю одно из значений в dict, а затем запускаю точно такую же команду импорта ... на этот раз он НЕ забивает значение, которое я установил ранее:
>>> bar['key1'] = 'zoomie'
>>> print (bar)
{'key1': 'zoomie', 'key2': 'value2', 'key3': 'value3'}
>>> from toimport import foo as bar
>>> print (bar)
{'key1': 'zoomie', 'key2': 'value2', 'key3': 'value3'}
Я уверен, что есть вполне разумное объяснение этому, но я не могу понять это самостоятельно. ; -)