반응형
현재 모듈에서 변수를 설정하기 위해 첫 번째 매개 변수 " object
"를 함수 setattr (object, name, value)
에 전달해야합니까?
예를 들면 :
setattr(object, "SOME_CONSTANT", 42);
다음과 같은 효과를 제공합니다.
SOME_CONSTANT = 42
이러한 행을 포함하는 모듈 내에서 (올바른 객체
사용).
모듈 수준에서 동적으로 여러 값을 생성하고 있으며 모듈 수준에서 __ getattr __
를 정의 할 수 없으므로 이것이 제 폴백입니다.
해결 방법
import sys
thismodule = sys.modules[__name__]
setattr(thismodule, name, value)
또는 setattr
를 사용하지 않고 (질문의 문자를 깨뜨리지 만 동일한 실제 목적을 충족 함 ;-) :
globals()[name] = value
참고 : 모듈 범위에서 후자는 다음과 같습니다.
vars()[name] = value
좀 더 간결하지만 함수 내에서 작동하지 않습니다 ( vars ()
는 호출되는 범위의 변수를 제공합니다. 전역 범위에서 호출 될 때 모듈의 변수, 그런 다음 괜찮습니다.) R / W를 사용하려면 함수에서 호출 할 때 함수의 변수를 사용하고 R / O로 처리해야합니다. Python 온라인 문서는이 특정 구분에 대해 약간 혼란 스러울 수 있습니다.
참조 페이지 https://stackoverflow.com/questions/2933470
반응형
'파이썬' 카테고리의 다른 글
파이썬 wxPython, StaticText () 값 설정 (0) | 2020.11.26 |
---|---|
파이썬 대용량 CSV 파일을 부분적으로 어떻게 읽을 수 있습니까? (0) | 2020.11.26 |
파이썬 초보자 Python : AttributeError : 'list'개체에 속성이 없습니다. (0) | 2020.11.26 |
파이썬 matlibplot에서 x 축과 y 축의 범위를 변경하는 방법은 무엇입니까? (0) | 2020.11.26 |
파이썬 Windows에서 아나콘다를 완전히 제거하는 방법은 무엇입니까? (0) | 2020.11.26 |
댓글