pythonでは、実際に関数を実行せずに(つまり、tryを使用して)関数が存在するかどうかをどのように確認しますか?モジュールに存在するかどうかをテストします。
try
except
を提案しました。あなたは確かにそれを使うことができます:
try:
variable
except NameError:
print("Not in scope!")
else:
print("In scope!")
これにより、variable
がスコープ内にあるかどうかが確認されます(関数は呼び出されません)。
Solution1:
import inspect
if (hasattr(m, 'f') and inspect.isfunction(m.f))
Solution2:
import inspect
if ('f' in dir(m) and inspect.isfunction(m.f))
どこ:
m =モジュール名
f = mで定義された関数
関数がパッケージに存在するかどうかを確認する場合:
import pkg
print("method" in dir(pkg))
スクリプト/名前空間に関数が存在するかどうかを確認している場合:
def hello():
print("hello")
print("hello" in dir())
クラスで関数を探している場合は、「__ dict__」オプションを使用できます。たとえば、「some_class」の関数「some_function」が次のことを行うかどうかを確認します。
if "some_function" in list(some_class.__dict__.keys()):
print('Function {} found'.format ("some_function"))