У меня есть модуль 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 может быть более подходящий шаблон проектирования.
Любые намеки?