[Python-ideas] SI scale factors in Python

MRAB python at mrabarnett.plus.com
Fri Aug 26 11:06:44 EDT 2016


On 2016-08-26 07:54, Steven D'Aprano wrote:
[snip]
> Specialist applications might be able to take shortcuts in
> dimensional analysis when "everybody knows" what the suppressed units
> must be. General purpose programming languages *cannot*. It is better
> NOT to offer the illusion of dimensional analysis than to mislead the
> user into thinking they are covered when they are not.
>
> Better to let them use a dedicated units package, not build a
> half-baked bug magnet into the language syntax.
>
If you're going to have units, you might also include (for want of a
name) "colours" (or "flavours"), which behave slightly differently with
respect to arithmetic operators.

For example:

When you add 2 values, they must have the same units and same colours. 
The result will have the same units and colours.

     # "amp" is a unit, "current" is a colour.
     # The result is a current measured in amps.
     1 amp current + 2 amp current == 3 amp current

When you divide 2 values, they could have the same or different units, 
but must have the same colours. The result will have a combination of 
the units (some might also cancel out), but will have the same colours.

     # "amp" is a unit, "current" is a colour.
     # The result is a ratio of currents.
     6 amp current / 2 amp current == 3 current


More information about the Python-ideas mailing list