Python,With ... as ... AST / Symbol访问

时间:2010-08-17 14:52:20

标签: python python-3.x python-2.6

  

免责声明:明智的语义确实表明,根据RHS词汇的行为不同,LHS是荒谬的。但我很好奇。

大家好,

简单的问题,但是一个人可能能够比我的黑客更好地回答。我目前正在处理元类等问题并为某些事情编写一个舒适的语法。

鉴于Python with ... as ...:语句,我是否可以在上下文管理器中访问as右侧给出的名称:

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

foo.__enter__()找出Dog所在的词汇吗?

超级奖励积分:保持实施不可知,支持Python 3.x.

1 个答案:

答案 0 :(得分:1)

不,就像Dog = foo('fido')中的那样,foo没有“严肃”的方式,Dog可以知道其结果即将被绑定到呼叫者中的{{1}}。 (通过“严重”我不排除在堆栈中翻找以找出调用字节码并将其拆解,& c - 基本上你知道如果你知道你的代码将由一个训练有素的维护者,知道你住在哪里; - )。