pythonprogramming16 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 파이썬에서 16진수 문자열을 정수로 변환하기, Convert hex string to integer in Python 질문 16진수 문자열을 정수로 변환하는 방법은 무엇인가요? "0xffff" ⟶ 65535 "ffff" ⟶ 65535 답변 0x 접두사 없이는 기본을 명시해야 합니다. 그렇지 않으면 구분할 수 있는 방법이 없습니다: x = int("deadbeef", 16) 0x 접두사가 있으면 Python은 16진수와 10진수를 자동으로 구분할 수 있습니다: >>> print(int("0xdeadbeef", 0)) 3735928559 >>> print(int("10", 0)) 10 (이 접두사 추측 동작을 호출하려면 반드시 기본값으로 0을 지정해야 합니다. 두 번째 매개변수를 생략하면 int() 함수는 기본값으로 10진수를 가정합니다.) 2023. 6. 6. Python 모듈의 이름(문자열)을 사용하여 함수를 호출하기, Calling a function of a module by using its name (a string) 질문 함수 이름을 포함한 문자열을 사용하여 함수를 호출하는 방법은 무엇인가요? 예를 들어: import foo func_name = "bar" call(foo, func_name) # calls foo.bar() 답변 모듈 foo와 메소드 bar가 있다고 가정합니다: import foo bar = getattr(foo, 'bar') result = bar() getattr는 클래스 인스턴스 바운드 메소드, 모듈 레벨 메소드, 클래스 메소드 등에도 유사하게 사용할 수 있습니다. 목록은 계속됩니다. 2023. 5. 7. Python 사전에 새로운 키를 추가하는 방법은 무엇인가요?, How can I add new keys to a dictionary? 질문 기존 사전에 키를 추가하는 방법은 무엇인가요? .add() 메소드가 없습니다. 답변 딕셔너리에 새로운 키/값 쌍을 만들려면 해당 키에 값을 할당합니다. d = {'key': 'value'} print(d) # {'key': 'value'} d['mynewkey'] = 'mynewvalue' print(d) # {'key': 'value', 'mynewkey': 'mynewvalue'} 키가 존재하지 않으면 해당 값을 가리키는 새로운 키가 추가됩니다. 키가 이미 존재하면 해당 키가 가리키는 현재 값이 덮어쓰여집니다. 2023. 5. 5. 이전 1 2 3 4 다음