# 11.1.14. Unit¶

This module implements units.

Shortcuts are defined to build unit values easily :

Theses unit value constructors accept int, float, object that can be converted to float, `UnitValue` instance and an iterable on these types.

A shortcut is defined to check an unit value match a particular unit, e.g. `as_V()`. Theses shortcuts return the value if the unit match else it raises the exception UnitError.

A shortcut is defined to access each unit, e.g. `U_V()`, `U_A()`, `U_s()`, `U_Hz()`, `U_Ω()`, `U_F()`, `U_H.()`, as well as for prefixes e.g. `U_mV()`.

Some shortcuts have Unicode and ASCII variants:

• For micro, we have the prefix μ and u.

• For Ohm, we have `u_Ω()` and `u_Ohm()`.

Some examples of usage:

```foo = kilo(1) # unit less

resistance_unit = U_Ω

resistance1 = u_kΩ(1)
resistance1 = u_kOhm(1) # ASCII variant

resistance1 = 1@u_kΩ   # using Python 3.5 syntax
resistance1 = 1 @u_kΩ  # space doesn't matter
resistance1 = 1 @ u_kΩ #

resistance2 = as_Ω(resistance1) # check unit

resistances = u_kΩ(range(1, 11)) # same as [u_kΩ(x) for x in range(1, 11)]
resistances = range(1, 11)@u_kΩ  # using Python 3.5 syntax

capacitance = u_uF(200)
inductance = u_mH(1)
temperature = u_Degree(25)

voltage = resistance1 * u_mA(1) # compute unit

frequency = u_ms(20).frequency
period = u_Hz(50).period
pulsation = frequency.pulsation
pulsation = period.pulsation
```

Warning

According to the Python `operator precedence

<https://docs.python.org/3/reference/expressions.html#operator-precedence>`_, division operators have a higher priority than the matrix multiplication operator. In consequence you must had parenthesis to perform something like `(10@u_s) / (2@_us)`.

class `PySpice.Unit.``FrequencyValue`(prefixed_unit, value)[source]
class `PySpice.Unit.``FrequencyValues`(prefixed_unit, shape, dtype=<class 'float'>, buffer=None, offset=0, strides=None, order=None)[source]
class `PySpice.Unit.``PeriodValue`(prefixed_unit, value)[source]
class `PySpice.Unit.``PeriodValues`(prefixed_unit, shape, dtype=<class 'float'>, buffer=None, offset=0, strides=None, order=None)[source]
class `PySpice.Unit.``UnitValueShorcut`(prefixed_unit)[source]

Bases: `object`

`PySpice.Unit.``atto`(value)
`PySpice.Unit.``deca`(value)
`PySpice.Unit.``define_shortcut`(name, shortcut)[source]
`PySpice.Unit.``exa`(value)
`PySpice.Unit.``femto`(value)
`PySpice.Unit.``giga`(value)
`PySpice.Unit.``hecto`(value)
`PySpice.Unit.``kilo`(value)
`PySpice.Unit.``mega`(value)
`PySpice.Unit.``micro`(value)
`PySpice.Unit.``milli`(value)
`PySpice.Unit.``nano`(value)
`PySpice.Unit.``peta`(value)
`PySpice.Unit.``pico`(value)
`PySpice.Unit.``tera`(value)
`PySpice.Unit.``yocto`(value)
`PySpice.Unit.``yotta`(value)
`PySpice.Unit.``zepto`(value)
`PySpice.Unit.``zetta`(value)