У меня есть модуль Python, который содержит несколько классов, каждый из которых представляет конкретный физический материал со своими свойствами (например, плотность, удельная теплоемкость). Некоторые из свойств являются просто float
членами класса, но многие зависят от некоторого параметра, например от температуры. Я реализовал это с помощью @staticmethod
s, т. @staticmethod
Все классы выглядят как
class Copper(object):
magnetic_permeability = 1.0
@staticmethod
def density(T):
return 1.0 / (-3.033e-9 + 68.85e-12*T - 6.72e-15*T**2 + 8.56e-18*T**3)
@staticmethod
def electric_conductivity(T, p):
return 1.0141 * T**2 * p
@staticmethod
def specific heat(T):
return ...
class Silver(object):
...
class Argon(object):
...
...
Таким образом, Class
es просто действуют как контейнеры для всех данных, а изобилие метода @staticmethod
позволяет мне подозревать, что для этого @staticmethod
может быть более подходящий шаблон проектирования.
Любые намеки?