본문 바로가기

전체 글980

Python 모듈을 사용할 때 'import module' 또는 'from module import'를 사용하나요?, Use 'import module' or 'from module import'? 질문 나는 import module을 사용하는 것이 좋은지 아니면 from module import을 사용하는 것이 좋은지에 대한 포괄적인 가이드를 찾아보려고 노력했습니다. 나는 막 Python을 시작했고, 최상의 방법을 염두에 두고 시작하려고 합니다. 기본적으로, 누군가 자신의 경험을 공유해주거나, 다른 개발자들이 선호하는 방법, 그리고 앞으로 발생할 수 있는 어려움을 피하는 가장 좋은 방법에 대해 알려주실 수 있을까요? 답변 import module과 from module import foo의 차이점은 주로 주관적입니다. 가장 좋아하는 방법을 선택하고 일관성 있게 사용하십시오. 결정을 돕기 위해 다음은 몇 가지 포인트입니다. import module 장점: import 문을 유지하는 것이 덜 필요합니.. 2023. 9. 13.
Python에서 **kwargs를 올바르게 사용하는 방법, Proper way to use **kwargs in Python 질문 **kwargs를 기본값으로 사용하는 경우 Python에서 올바른 방법은 무엇인가요? kwargs는 사전을 반환하지만, 기본값을 설정하는 가장 좋은 방법은 무엇인가요? 단순히 사전으로 접근해야 할까요? get 함수를 사용해야 할까요? class ExampleClass: def __init__(self, **kwargs): self.val = kwargs['val'] self.val2 = kwargs.get('val2') 내가 본 코드에서 사람들은 서로 다른 방식으로 이를 수행하며, 어떤 것을 사용해야 할지 알기 어렵습니다. 답변 딕셔너리에 없는 키에 대해 get()에 기본값을 전달할 수 있습니다: self.val2 = kwargs.get('val2',"기본값") 하지만, 특정 기본값을 가진 특정 인.. 2023. 9. 13.
ISO 8601 datetime 문자열을 Python datetime 객체로 어떻게 번역하나요? [중복], How do I translate an ISO 8601 datetime string into a Python datetime object? [duplicate] 질문 날짜 및 시간 문자열을 "2009-05-28T16:15:00"과 같은 형식으로 받고 있습니다 (ISO 8601인 것 같습니다). 하나의 해킹적인 옵션은 time.strptime을 사용하여 문자열을 구문 분석하고 튜플의 첫 6개 요소를 datetime 생성자에 전달하는 것입니다. 예를 들면 다음과 같습니다: datetime.datetime(*time.strptime("2007-03-04T21:08:12", "%Y-%m-%dT%H:%M:%S")[:6]) 더 "깨끗한" 방법을 찾지 못했습니다. 그런 방법이 있을까요? 답변 나는 일반적으로 시간대 처리와 일반적으로 견고한 날짜 구문 분석을 위해 dateutil 라이브러리를 선호합니다. ISO 8601 문자열인 2010-05-08T23:41:54.000Z와 .. 2023. 9. 13.
Python 큰 파일을 한 줄씩 읽는 방법은 무엇인가요?, How to read a large file - line by line? 질문 전체 파일의 각 줄을 반복하고 싶습니다. 이를 위해 전체 파일을 읽어 리스트에 저장한 다음 관심 있는 줄을 처리합니다. 이 방법은 많은 메모리를 사용하므로 다른 대안을 찾고 있습니다. 지금까지 작성한 코드: for each_line in fileinput.input(input_file): do_something(each_line) for each_line_again in fileinput.input(input_file): do_something(each_line_again) 이 코드를 실행하면 오류 메시지가 표시됩니다: device active. 어떤 제안이 있나요? 목적은 각 줄에 대해 모든 다른 줄과 Levenshtein 거리를 계산하는 것입니다. 2022년 11월 수정: 이 질문보다 8개월 뒤.. 2023. 9. 13.
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.