[PYTHON] 컨텍스트 관리자를 사용할 때 개체가 없음이됩니다.
PYTHON컨텍스트 관리자를 사용할 때 개체가 없음이됩니다.
왜이 일을하지 않았는가?
class X:
var1 = 1
def __enter__(self): pass
def __exit__(self, type, value, traceback): pass
with X() as z:
print z.var1
나는 얻다:
print z.var1
AttributeError: 'NoneType' object has no attribute 'var1'
해결법
-
==============================
1.X의 정의를 다음으로 변경하십시오.
X의 정의를 다음으로 변경하십시오.
class X(object): var1 = 1 def __enter__(self): return self def __exit__(self, type, value, traceback): pass
with는 __enter __ () 메서드의 반환 값을 as 뒤에 오는 이름에 지정합니다. 귀하의 __enter __ ()는 없음을 반환했으며, 이는 z에 할당되었습니다.
클래스를 새로운 스타일의 클래스로 변경했습니다 (이 클래스는 작동시키기에 중요하지 않습니다).
-
==============================
2.컨텍스트 관리자 용 문서를 참조하십시오.
컨텍스트 관리자 용 문서를 참조하십시오.
__enter__ 메서드는 아무 것도 반환하지 않습니다. 이는 None을 반환하는 것과 같습니다.
from https://stackoverflow.com/questions/5093382/object-becomes-none-when-using-a-context-manager by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] TypeError : object ()는 __new__을 정의한 후에 매개 변수를 사용하지 않습니다. (0) | 2018.11.09 |
---|---|
[PYTHON] NLTK와 scikit-learn에서 텍스트 형태소 분석과 구두점 제거를 결합 (0) | 2018.11.09 |
[PYTHON] 파이썬을 사용하여 csv 파일을 SQL Server 데이터베이스에 작성하기 (0) | 2018.11.09 |
[PYTHON] Paramiko를 사용하여 한 번에 여러 개의 SSH 연결 만들기 (0) | 2018.11.09 |
[PYTHON] Pandas 데이터 프레임에서 yes / no 열을 1/0으로 변경하는 간단한 방법이 있습니까? (0) | 2018.11.09 |