I have a Python module that contains a number of classes, each representing a particular physical material with its properties (e.g., density, specific heat). Some of the properties are just float members of the class, but many depend on some parameter, e.g., the temperature. I implemented this through @staticmethods, i.e., all of the classes look like
class Copper:
    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:
    # ...
class Argon:
    # ...
# ...
The Classes thus merely act as containers for all the data, and the abundance of @staticmethods has me suspecting that there may be a more appropriate design pattern for this use case.
Any hints?