2010-08-17 32 views
0

聲明:明智的語義確實規定,根據RHS的詞位,LHS的行爲是不同的。但我很奇怪。Python,With ... as ... AST /符號訪問

嗨,大家好,

簡單的問題,而是一個可以Somone的能夠回答比我更好的破解。我目前正在弄亂元類等,併爲一些事情制定出舒適的語法。

鑑於Python的with ... as ...:聲明,我可以在上下文管理器訪問的域名(或多個)上的as右側給出什麼:

with foo('fido') as Dog: 
    ... 

foo.__enter__()找出詞位,其中Dog是什麼?

超級獎金信用:保持它的實現不可知,也支持Python 3.x。

回答

1

不,就像在Dog = foo('fido')中說的那樣,foo可以知道其結果在調用者中將被綁定到名稱Dog的「嚴重」方式。 (通過「嚴重」,我不在堆棧中查找調用字節碼並將其拆分,& c - 基本上,如果您知道代碼將由肌肉發達的維護者,他知道你住在哪裏;-)。

+0

+1確實。感謝您的回覆。我知道明智的代碼也不應該考慮到詞法;) – 2010-08-17 15:11:17