2010年12月12日 星期日

Q&A -- 如何用程式判斷某函數是否含有yield?

Q:

如何能在不執行某函數的狀況下, 以程式判斷此函數含有yield?
(即此函數可以成為iterator)



A:

inspect.isgeneratorfunction



Example:

def a_iter_fn():
    yield 1

def a_fn():
    return 1

from inspect import isgeneratorfunction

print isgeneratorfunction(a_iter_fn)
print isgeneratorfunction(a_fn)

Result:

True
False

沒有留言: