find_current_module¶
- astropy.utils.introspection.find_current_module(depth=1, finddiff=False)[ソース]¶
その中からこの関数を呼び出すモジュール/パケットを決定する.
この関数には2つのパターンがあります
finddiff
選択します。これは、要求されたフレーム数を呼び出しスタック内で簡単に移動させるであろう(もしfinddiff
False),そうでなければスタックを上に呼び出し,それが到着するまでスタックを呼び出す. not 指定された集合にあります。- パラメータ
- depth集積する.
呼び出しスタックからどのくらいの距離(0-インデックス)を返すかを指定して、入力0が戻るように指定します。
astropy.utils.misc
)。- finddiffBoolまたはList
Falseであれば戻る.
mod
そうかもしれないdepth
現在のフレームから上のフレーム。そうでなければ、この関数は1フレームから始まるだろうdepth
現在から上に上がり、スタックを第1のモジュールにアップロードし続ける、すなわち 違います。 提供されたリストのそれらとは異なる。この場合にはfinddiff
モジュールまたはモジュール名のリストであってもよい。あるいはTrueでモジュールを使うことができますdepth
呼び出しスタックは戻りモジュールと最も異なるモジュールを構成する.
- 返品
- modモジュールまたはなし
モジュールオブジェクトは,パケットが見つからなければNoneとなる.モジュールの名前は
__name__
返されたオブジェクトの属性(Noneでなければ).
- 賃上げをする
- ValueError
もし
finddiff
無効エントリを含むリストです。
実例.
以下の例では,名前のパケットに2つのモジュールがあると仮定する.
pkg
それがそうです。mod1.py
**def find1(): from astropy.utils import find_current_module print find_current_module(1).__name__ def find2(): from astropy.utils import find_current_module cmod = find_current_module(2) if cmod is None: print 'None' else: print cmod.__name__ def find_diff(): from astropy.utils import find_current_module print find_current_module(0,True).__name__
mod2.py
**def find(): from .mod1 import find2 find2()
これらのモジュールを実装すると,以下のような場合がある.
>>> from pkg import mod1, mod2 >>> from astropy.utils import find_current_module >>> mod1.find1() pkg.mod1 >>> mod1.find2() None >>> mod2.find() pkg.mod2 >>> find_current_module(0) <module 'astropy.utils.misc' from 'astropy/utils/misc.py'> >>> mod1.find_diff() pkg.mod1