【问题标题】:Python, With ... as ... AST/Symbol accessPython, With ... as ... AST/符号访问
【发布时间】:2010-08-17 14:52:19
【问题描述】:

免责声明:明智的语义确实表明 LHS 的行为取决于 RHS 词位是可笑的。但我还是很好奇。

大家好,

简单的问题,但有人可能比我的 hack 回答得更好。我目前正在搞乱元类等,并为某些事情制定了一种舒适的语法。

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

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

foo.__enter__() 可以找出Dog 所在的词位吗?

超级奖励积分:保持与实现无关,也支持 Python 3.x。

【问题讨论】:

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


    【解决方案1】:

    不,就像Dog = foo('fido') 中的(比如说)一样,foo 没有“严肃”的方式可以知道其结果即将在调用者中绑定到名称Dog。 (通过“认真”,我不包括在堆栈中翻找调用字节码并反汇编它,&c——基本上是你知道如果你知道你的代码将由井维护你永远不会做的事情- 肌肉发达的维护者,知道你住在哪里;-)。

    【讨论】:

    • +1 正确。感谢您的回复。我知道明智的代码也不应该考虑词位;)
    猜你喜欢
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    相关资源
    最近更新 更多