astropy.units.def_unit(s, represents=None, doc=None, format=None, prefixes=False, exclude_prefixes=[], namespace=None)[source]

Factory function for defining new units.

sstr or list of str

The name of the unit. If a list, the first element is the canonical (short) name, and the rest of the elements are aliases.

representsUnitBase instance, optional

The unit that this named unit represents. If not provided, a new IrreducibleUnit is created.

docstr, optional

A docstring describing the unit.

formatdict, optional

A mapping to format-specific representations of this unit. For example, for the Ohm unit, it might be nice to have it displayed as \Omega by the latex formatter. In that case, format argument should be set to:

{'latex': r'\Omega'}
prefixesbool or list, optional

When True, generate all of the SI prefixed versions of the unit as well. For example, for a given unit m, will generate mm, cm, km, etc. When a list, it is a list of prefix definitions of the form:

(short_names, long_tables, factor)

Default is False. This function always returns the base unit object, even if multiple scaled versions of the unit were created.

exclude_prefixeslist of str, optional

If any of the SI prefixes need to be excluded, they may be listed here. For example, Pa can be interpreted either as “petaannum” or “Pascal”. Therefore, when defining the prefixes for a, exclude_prefixes should be set to ["P"].

namespacedict, optional

When provided, inject the unit (and all of its aliases and prefixes), into the given namespace dictionary.


The newly-defined unit, or a matching unit that was already defined.