quantity_input

astropy.units.quantity_input(func=None, **kwargs)

関数のパラメータ単位を検証するための装飾器。

セル仕様は,キーワードパラメータとして修飾子に提供してもよいし,関数アノテーション文法を用いることで提供してもよい.修飾子のパラメータは,存在する任意の関数書き込みよりも優先される.

A UnitsError パラメータの単位属性が修飾子や書き込みで指定された単位と等しくなければ開始される.パラメータに単位属性がない場合,すなわち数量オブジェクトではない場合, ValueError パラメータが書き込みでない限り、開始されるだろう。これは,非数量的なアノテーションの通過を許すためである.

等価物が装飾子に指定されている場合、関数は効率的な等価物で実行される。

注意事項

チェック関数の変数パラメータ内のパラメータはサポートされていません(すなわち*arg or * *kwargs)。

実例.

import astropy.units as u
@u.quantity_input(myangle=u.arcsec)
def myfunction(myangle):
    return myangle**2
import astropy.units as u
@u.quantity_input
def myfunction(myangle: u.arcsec):
    return myangle**2

返却値書き込みを指定することもできますが、関数は常に返されます。 Quantity そのユニットにあります。

import astropy.units as u
@u.quantity_input
def myfunction(myangle: u.arcsec) -> u.deg**2:
    return myangle**2

等価機能を使用する:

import astropy.units as u
@u.quantity_input(myenergy=u.eV, equivalencies=u.mass_energy())
def myfunction(myenergy):
    return myenergy**2