title: module with classes with only static methods
body: <p>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 <code>float</code> members of the class, but many depend on some parameter, e.g., the temperature. I implemented this through <code>@staticmethod</code>s, i.e., all of the classes look like</p>
  <pre class="lang-py prettyprint-override"><code>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:
      # ...
  
  # ...
  </code></pre>
  <p>The <code>Class</code>es thus merely act as containers for all the data, and the abundance of <code>@staticmethod</code>s has me suspecting that there may be a more appropriate design pattern for this use case.</p>
  <p>Any hints?</p>