2010-08-17 3 views
0

면책 조항 : 현명한 의미는 RHS 어휘에 따라 다르게 동작하는 LHS는 어리 석다는 것을 나타냅니다. 그러나 나는 궁금하다.파이썬, ... AST/기호 액세스

안녕 얘들 아,

간단한 질문,하지만 somone에 내 해킹보다 더 나은 대답 할 수 있다는 하나. 나는 현재 메타 클래스 등을 망치고 있으며 어떤 것에는 편안한 구문을 사용하고있다. 파이썬 with ... as ...: 문을 감안할 때

, 나는 이름 (들) as의 오른쪽에 주어진 어떤 상황에 맞는 관리자에 액세스 할 수 있습니다

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

foo.__enter__()Dog 인 어휘를 찾을 수 있습니까?

슈퍼 보너스 크레딧 : Python 3.x도 지원하므로 구현에 지장이 없습니다.

답변

1

아니요, Dog = foo('fido')과 마찬가지로 (foo) foo의 결과가 호출자의 이름 Dog에 바인딩 될 예정임을 알 수 없습니다. ("심각한"나는 호출 바이트 코드를 찾아 내고 그것을 해체하기 위해 스택에서 샅샅이 뒤져 보지 않고, & c - 기본적으로 당신이 알고있는 것들은 당신이 알지 못한다면 당신의 코드가 당신이 사는 곳을 아는 잘 훈련 된 관리자. ;-).

+0

+1 참. 답장을 보내 주셔서 감사합니다. 나는 합리적인 코드가 어휘도 고려해서는 안된다는 것을 알고있다.) –

관련 문제