본문 바로가기

Python283

Python @staticmethod와 @classmethod의 차이점, Difference between @staticmethod and @classmethod 질문 데코레이트된 메소드와 @staticmethod로 데코레이트된 메소드, 그리고 @classmethod로 데코레이트된 메소드의 차이점은 무엇인가요? 답변 아래의 예제 코드를 보면서 이해해보세요: foo, class_foo, static_foo의 호출 시그니처의 차이점을 주목하세요: class A(object): def foo(self, x): print(f"executing foo({self}, {x})") @classmethod def class_foo(cls, x): print(f"executing class_foo({cls}, {x})") @staticmethod def static_foo(x): print(f"executing static_foo({x})") a = A() 아래는 객체 인스턴스가.. 2023. 5. 4.
Python 'for' 루프에서 인덱스에 접근하기, Accessing the index in 'for' loops 질문 for 루프를 사용하여 시퀀스를 반복하면서 인덱스에 액세스하는 방법은 무엇인가요? xs = [8, 23, 45] for x in xs: print("item #{} = {}".format(index, x)) 원하는 출력: item #1 = 8 item #2 = 23 item #3 = 45 답변 enumerate() 내장 함수를 사용하세요: for idx, x in enumerate(xs): print(idx, x) for i in range(len(xs)): x = xs[i]로 수동 색인을 하는 것이나 추가 상태 변수를 수동으로 관리하는 것은 non-pythonic합니다. 자세한 내용은 PEP 279을 확인하세요. 2023. 5. 4.
Python 부모 디렉토리가 없으면 디렉토리를 생성하는 방법은 무엇인가요?, How do I create a directory, and any missing parent directories? 질문 주어진 경로에 디렉토리를 만들고 그 경로에 따라 누락된 부모 디렉토리도 만드는 방법은 무엇인가요? 예를 들어, Bash 명령어 mkdir -p /path/to/nested/directory가 이를 수행합니다. 답변 Python ≥ 3.5에서는 pathlib.Path.mkdir를 사용하세요: from pathlib import Path Path("/my/directory").mkdir(parents=True, exist_ok=True) Python의 이전 버전의 경우, 각각 작은 결함이 있는 두 가지 좋은 답변이 있으므로 제 생각을 제시하겠습니다: os.path.exists를 사용하고 os.makedirs를 고려하세요. import os if not os.path.exists(directory): o.. 2023. 5. 4.
Python 프로그램을 실행하거나 시스템 명령을 호출하는 방법은 무엇인가요?, How do I execute a program or call a system command? 질문 프로그램을 실행하거나 시스템 명령을 호출하는 방법은 무엇인가요? Python에서 쉘 또는 명령 프롬프트에 입력한 것처럼 외부 명령을 호출하는 방법은 무엇인가요? 답변 subprocess 모듈을 사용합니다. 이 모듈은 표준 라이브러리에 포함되어 있습니다: import subprocess # 간단한 명령어의 경우 subprocess.run(["ls", "-l"]) # 복잡한 명령어의 경우, 많은 인수를 사용하는 경우, 문자열 + `shell=True`을 사용합니다: cmd_str = "ls -l /tmp | awk '{print $3,$9}' | grep root" subprocess.run(cmd_str, shell=True) subprocess.run은 os.system보다 더 유연합니다. (std.. 2023. 5. 4.