我有Python中的問題的列表,如果有人可以請幫助 這裏是例子,我有一個contextmanager如下獲取的蟒蛇在contextmanager定義的語句函數
from contextlib import contextmanager
@contextmanager
def main_func(name):
print("<%s>" % name)
yield
print("</%s>" % name)
# Retreive the list of function here : tag_func1 and tag_func2 then run the one I need to run
然後使用它像下面
with main_func("h1"):
def tag_func1():
print("foo1")
def tag_func2():
print("foo2")
我想知道的是可能中檢索的定義在這裏tag_func1和tag_func1一個語句的功能列表d在代碼中動態地運行它們。
我需要執行這些操作到功能main_func實施 contextmanager
非常感謝您的幫助,
不,這不是上下文管理員所做的。它們只定義了進入和退出塊時的行爲;他們無法訪問或控制塊內發生的情況。見[這個問題](http://stackoverflow.com/questions/21248103/is-it-possible-to-access-the-context-object-code-block-inside-the-exit-m)和[這一個](http://stackoverflow.com/questions/20767038/is-it-possible-to-access-enclosing-context-manager)。 – BrenBarn
上下文管理器甚至不創建單獨的作用域,因此無論您在其中定義的是否在本地定義的範圍之外。 – poke