SQLAlchemy を使用していて、関数group_byをインタープリターにインポートしようとしていますが、見つからないようです。モジュール ツリーを検索して、この関数が存在する場所を確認する簡単な方法はありますか?
もちろん、私はfrom sqlalchemy import + tab手動で検索を試みましたが、各ツリー レベルでチェックするオプションが多すぎます。
SQLAlchemy を使用していて、関数group_byをインタープリターにインポートしようとしていますが、見つからないようです。モジュール ツリーを検索して、この関数が存在する場所を確認する簡単な方法はありますか?
もちろん、私はfrom sqlalchemy import + tab手動で検索を試みましたが、各ツリー レベルでチェックするオプションが多すぎます。
これを行う簡単な方法は、インタプリタの外に出て、ドキュメントを検索することです。
一方、インポートするそのような機能はないように見えます。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
SQLAlchemy.__all__公開されているモジュール内のすべての関数のリストを返す印刷を試してください。