Я пишу фрагмент кода, включающий моделирование жидкости (топлива), с которой связаны некоторые константы (плотность, плотность энергии и т. Д.). Я хочу, чтобы эти константы и их значения были в отдельном файле Excel, чтобы к ним могли обращаться люди, которые не знают Python. Тем не менее, я изо всех сил пытаюсь понять, как я могу сделать это лучше всего.
Скажите, у меня есть следующий фрагмент кода:
class Fuel:
DENSITY = a
ENERGY_DENSITY = b
def __init__():
some_other_code
Теперь я хочу присвоить значения a и b , сначала считав значения из файла excel. Я делаю это, используя pandas.read_excel()
.
Я мог бы сделать это так:
class Fuel:
CONSTANTS = pd.read_excel(file_name)
DENSITY = CONSTANTS['density']
ENERGY_DENSITY = CONSTANST['energy_density']
def __init__():
some_other_code
Однако, если бы мне пришлось создавать множество экземпляров класса Fuel
, каждый экземпляр потребовал бы вызова read_excel
, что сделало бы код излишне медленным.
Другой вариант - назначить переменные класса в моем main.py
. Я бы назвал CONSTANTS = pd.read_excel()
только один раз здесь, а затем я назначил значения классу следующим образом:
в main.py
CONSTANTS = pd.read_excel(file_name)
Fuel.DENSITY = CONSTANTS['density']
Fuel.ENERGY_DENSITY = CONSTANTS['energy_density']
Это потребует от меня, однако, определения моего Fuel
класса по-другому. Для этого я должен определить свой класс следующим образом:
class Fuel:
def __init__():
some_other_code
Теперь это кажется мне очень скрытным, потому что при проверке класса Fuel
вы не увидите, что в нем есть переменные DENSITY
и ENERGY_DENSITY
.
Как эти переменные класса следует назначать из импортированного (внешнего) файла, в соответствии с передовой практикой?