이전 코드 (6 개월 전)가 돌아 왔고 갑자기 설명 할 수없는 오류가 발생했습니다. 특히 놀랍게 만드는 점은 이 내 코드에이 아니라는 것입니다. 내 자이 썬 설치와 함께 사용되는 stdlib의 복사본에 있습니다. 어떤 방식 으로든 건드린 적이 없으며 (내 컴퓨터에 로컬로 설치되어 있으므로 아무도 그렇지 않습니다. 그것을 만졌다.).Jython imaplib의이 코드가 갑자기 작동하지 않는 이유는 무엇입니까?
불쾌감을주는 코드를 없애려면 나에게 전혀 무해한 것처럼 보입니다. 표준 imaplib.py에 있으며 문제가없는 것처럼 보입니다.
File "C:\jython2.5.3\Lib\imaplib.py", line 504, in login
return login(user, password)
NameError: global name 'login' is not defined
그리고 코드는 다음과 같습니다 : 내가 오류는
예, 단지 바닐라 재귀의def login(self, user, password):
"""Identify client using plaintext password.
(typ, [data]) = <instance>.login(user, password)
NB: 'password' will be quoted.
"""
typ, dat = self._simple_command('LOGIN', user, self._quote(password))
if typ != 'OK':
self.error(dat[-1])
time.sleep(15)
return login(user, password)
self.state = 'AUTH'
return typ, dat
?
어떻게 이런 문제를 해결할 생각인가요? 나는 꽤 난처한 처지이다.
return login(user, password)
사용 : 대신
도움 주셔서 감사합니다. 이 코드는 stdlib 파일에서 가져온 것입니다. 그런 이유로 그 코드를 변경하기를 꺼립니다. 진짜 범인은 변화된 백엔드 인 것 같습니다 (아래 답변 참조). 하지만 도움을 주셔서 감사합니다. – theodox
"바닐라 재귀"에 대한 귀하의 제안이 올바르지 않습니다. 첫 번째 인자로 'self'는'login()'이 메소드임을 보여준다. 'return login (user, password)'를 호출하면 다른 login()이 호출됩니다. –