Я создаю веб-приложение с Django.Я использую файл с именем simulateur_data.py, который содержит класс с именем SimulateurData, в котором хранятся все ключевые параметры, которые мне нужно использовать в скриптах и шаблонах.Цель состоит в том, чтобы было легче изменить параметры, когда они уместны.
Я использую Python 3.7.2 и django 2.1.7
Это прекрасно работает, когда я импортирую все параметры из SimulateurData, кромеодин, который является вложенным списком.Когда я импортирую его из другого скрипта, иногда он импортирует правильные значения, иногда я получаю вложенный список с мультипликатором 137.74632546929436, примененным к некоторым значениям.
Сначала я подумал, что это потому, что вложенный список содержит смесьinteger и float, но затем я преобразовал все значения в float и все еще получаю ту же проблему.
Вот моя структура приложения (я отображаю только те файлы и папки, которые я считаю релевантными):
- app/
- data/
- simulateur_data.py
- scripts/
- calculs.py
В simulateur_data.py, вот код вложенного списка, с которым у меня проблема (table_bareme_ir - это тот, который я импортирую: он конвертирует t_i_r в float):
class SimulateurData(models.Model):
t_i_r = [
[0, 9964, 0, 0],
[9964, 27519, 0.14, 2457.7],
[27519, 73779, 0.3, 13878],
[73779, 156244, 0.41, 33810.65],
[156244, 1e+100, 0.45, 0],
]
table_bareme_ir = [[float(x) for x in row] for row in t_i_r]
ps: я впервые использовалЗатем float ('inf') попробовал np.inf и, наконец, протестировал с 1e + 100, думая, что это было источником проблемы.У меня все еще есть проблема с 1e + 100.
Вот как я импортирую table_bareme_ir в calculs.py:
from ..data.simulateur_data import SimulateurData
table_bareme_ir = SimulateurData.table_bareme_ir
, как я уже сказал, иногда импорт идет правильно, иногда идет неправильно.Когда это идет не так, у меня есть следующий результат для table_bareme_ir:
table_bareme_ir = [
[0.0, 1372504.386976049, 0.0, 0.0],
[1372504.386976049, 3790641.1305895117, 0.14, 338539.14410588477],
[3790641.1305895117, 10162786.146799067, 0.3, 1911643.5048628675],
[10162786.146799067, 21522036.876624424, 0.41, 4657292.799228396],
[21522036.876624424, 1.3774632546929432e+102, 0.45, 0.0]
]
кажется, что некоторые значения остаются неизменными (третий элемент каждого вложенного списка, который был с плавающей точкой меньше 1), а некоторыеумножаются ровно на 137.74632546929436
Я уже несколько часов смотрю на эту проблему, но я действительно отчаялся и не нахожу никакой логики в этом поведении.
Кроме того, класс SimulateurData содержит другие вложенные спискиоснованный на той же структуре, которая никогда не представляет никаких проблем при импорте.Например, этот:
toto = [
[0, 6500, 0.03945],
[6500, 17000, 0.01627, 256.425],
[17000, 60000, 0.01085, 427.26],
[60000, 0.00814, 893.81],
]
Кто-то уже сталкивался с подобной проблемой?Как я могу решить это?Я действительно хочу сохранить все мои параметры в одном месте (SimulateurData) для целей обслуживания.