본문 바로가기

Python/Python FAQ540

Python 파이썬에서 모든 객체 속성 가져오기? [중복], Get all object attributes in Python? [duplicate] 질문 파이썬에서 객체의 모든 속성/메서드/필드 등을 얻을 수 있는 방법이 있을까요? vars()는 내가 원하는 것에 가까운 결과를 제공하지만, 객체에 __dict__가 없는 경우에는 작동하지 않습니다. (예: list, dict 등). 답변 내장 함수 dir()을(를) 사용하세요. 2023. 9. 13.
Python 파이썬 객체를 올바르게 정리하는 방법은 무엇인가요?, How do I correctly clean up a Python object? 질문 클래스 Package: def __init__(self): self.files = [] # ... def __del__(self): for file in self.files: os.unlink(file) __del__(self)는 위에서 AttributeError 예외가 발생합니다. 나는 Python은 "전역 변수" (이 맥락에서는 멤버 데이터?)의 존재를 보장하지 않는다는 것을 이해합니다. __del__()가 호출될 때 예외의 원인이 이것이라면, 객체가 올바르게 해체되도록 어떻게 해야 할까요? 답변 파이썬의 with 문을 사용하여 정리해야 할 리소스를 관리하는 것을 추천합니다. 명시적인 close() 문을 사용하는 것의 문제는 호출을 완전히 잊거나 예외가 발생할 때 리소스 누출을 방지하기 위해 f.. 2023. 9. 13.
Python 'with' 문에서 여러 변수 사용하기?, Multiple variables in a 'with' statement? 질문 파이썬에서 with 문을 사용하여 하나 이상의 변수를 선언하는 것이 가능한가요? 다음과 같은 방식으로: from __future__ import with_statement with open("out.txt","wt"), open("in.txt") as file_out, file_in: for line in file_in: file_out.write(line) ... 또는 두 개의 리소스를 동시에 정리하는 것이 문제인가요? 답변 파이썬 3.1부터 가능하며 Python 3.1 및 Python 2.7에서 사용할 수 있습니다. 새로운 with 구문은 여러 개의 컨텍스트 매니저를 지원합니다: with A() as a, B() as b, C() as c: doSomething(a,b,c) contextlib... 2023. 9. 13.
Python 파이썬 모듈 소스의 위치를 어떻게 찾을 수 있나요?, How do I find the location of Python module sources? 질문 특정 Python 모듈의 소스 파일이 설치된 위치를 어떻게 알 수 있을까요? Windows와 Linux에서 방법이 다를까요? 특히 datetime 모듈의 소스를 찾으려고 시도하고 있지만, 더 일반적인 답변에도 관심이 있습니다. 답변 순수한 파이썬 모듈의 경우, 소스를 찾으려면 themodule.__file__을(를) 찾으면 됩니다. 그러나 datetime 모듈은 C로 작성되어 있으므로 datetime.__file__은 .so 파일을 가리킵니다(Windows에는 datetime.__file__이 없습니다). 따라서 소스를 볼 수 없습니다. 파이썬 소스 tarball을 다운로드하고 추출하면 모듈의 코드를 Modules 하위 디렉토리에서 찾을 수 있습니다. 예를 들어, 파이썬 2.6의 datetime 코.. 2023. 9. 13.