4

SQLAlchemy を使用していて、関数group_byをインタープリターにインポートしようとしていますが、見つからないようです。モジュール ツリーを検索して、この関数が存在する場所を確認する簡単な方法はありますか?

もちろん、私はfrom sqlalchemy import + tab手動で検索を試みましたが、各ツリー レベルでチェックするオプションが多すぎます。

4

2 に答える 2

3

これを行う簡単な方法は、インタプリタの外に出て、ドキュメントを検索することです。


一方、インポートするそのような機能ないように見えます。group_by メソッドとオブジェクトがsqlalchemy.orm.query.Queryあります。sqlalchemy.sql.expression.[Compound]Select[Base]


しかし、名前を探してパッケージ内のすべてのモジュールを再帰的に調べたい場合は、次のようにします。

import inspect

def find_name(package, name):
    if hasattr(package, name):
        yield package
    for modulename, submodule in inspect.getmembers(package, inspect.ismodule):
        yield from find_name(submodule, name)

Python 3.2 以前では、 をyield fromループに置き換える必要があります。

for modulename, submodule in inspect.getmembers(package, inspect.ismodule):
    for result in find_name(submodule, name):
        yield result

また、すべての結果ではなく最初の結果だけが必要な場合は、return代わりにyieldingを実行できます。

def find_name(package, name):
    if hasattr(package, name):
        return package
    for modulename, submodule in inspect.getmembers(package, inspect.ismodule):
        result = find_name(submodule, name)
        if result:
            return result
于 2013-05-17T20:30:09.770 に答える
0

SQLAlchemy.__all__公開されているモジュール内のすべての関数のリストを返す印刷を試してください。

于 2013-05-17T20:23:20.290 に答える