我的工作就像一個日誌組件,我想用這樣的:訪問封閉「與」語句隱
with logging.Log(context='A', message='msg1') # with1
do_stuff()
正如你可以看到日誌實現with語句的上下文管理。此外,Log將context
存儲爲成員變量。比方說,我實現do_stuff
如下:
def do_stuff():
with logging.Log(message='msg2') # with2
do_other_stuff()
這意味着「with2」是「配1」中調用。
問題是,有沒有辦法訪問「with1」的成員?我玩弄了inspect
,但到目前爲止還沒有運氣。我知道我可以將Log分配給一個變量並傳遞給它。我不想這樣做,因爲它會混亂很多代碼。任何想法?
我想重複使用context
。
是的,我知道這會奏效。這就是我所說的「我可以將Log分配給一個變量並將其傳遞」。這會混亂很多的代碼,因爲有很多嵌套的函數... – 2014-09-04 22:49:40
你可以在locals()和globals()中搜索,但我認爲試圖訪問未命名的變量會變得更加混亂,然後只傳遞參數(只是我的0.02美元)。 – user590028 2014-09-04 22:54:32