본문 바로가기

Python/Python FAQ540

Python 파이썬에서 추상 클래스를 만들 수 있을까요?, Is it possible to make abstract classes in Python? 질문 파이썬에서 클래스나 메소드를 추상화하는 방법은 무엇인가요? 다음과 같이 __new__()를 재정의해 보았습니다: class F: def __new__(cls): raise Exception("추상 클래스 %s의 인스턴스를 생성할 수 없습니다" %cls) 하지만, 이제 F를 상속받는 G 클래스를 다음과 같이 만들면: class G(F): pass G를 인스턴스화할 수 없습니다. 왜냐하면 G는 슈퍼 클래스의 __new__ 메소드를 호출하기 때문입니다. 추상 클래스를 정의하는 더 좋은 방법이 있을까요? 답변 추상 클래스를 만들기 위해 abc 모듈을 사용하세요. 메서드를 추상으로 선언하기 위해 abstractmethod 데코레이터를 사용하고, 파이썬 버전에 따라 세 가지 방법 중 하나를 사용하여 클래스를 .. 2023. 11. 16.
Python 파이썬에서 문자열에서 영숫자 문자만 남기고 모두 제거하기, Stripping everything but alphanumeric chars from a string in Python 질문 파이썬을 사용하여 문자열에서 모든 영숫자가 아닌 문자를 제거하는 가장 좋은 방법은 무엇인가요? 이 질문의 PHP 버전에서 제시된 해결책들은 약간의 조정을 거치면 작동할 것 같지만, '파이썬 다운' 느낌이 들지 않습니다. 기록을 위해, 저는 마침표와 쉼표(및 기타 구두점)뿐만 아니라 따옴표, 괄호 등도 제거하려고 합니다. 답변 저는 그냥 호기심으로 몇 가지 함수를 시간 측정해 보았습니다. 이 테스트에서는 내장된 string 모듈의 string.printable에서 비알파벳 및 숫자가 아닌 문자를 제거합니다. '[\W_]+'와 pattern.sub('', str)의 사용이 가장 빠르다는 것을 알게 되었습니다. $ python -m timeit -s \ "import string" \ "''.join(c.. 2023. 11. 16.
Python 파이썬 리스트를 내림차순으로 정렬, Python list sort in descending order 질문 이 목록을 내림차순으로 정렬하는 방법은 무엇인가요? timestamps = [ "2010-04-20 10:07:30", "2010-04-20 10:07:38", "2010-04-20 10:07:52", "2010-04-20 10:08:22", "2010-04-20 10:08:22", "2010-04-20 10:09:46", "2010-04-20 10:10:37", "2010-04-20 10:10:58", "2010-04-20 10:11:50", "2010-04-20 10:12:13", "2010-04-20 10:12:13", "2010-04-20 10:25:38" ] 답변 이렇게 하면 배열의 정렬된 버전을 얻을 수 있습니다. sorted(timestamps, reverse=True) 원래 자리에서 .. 2023. 11. 16.
Python TypeError: Unicode-objects must be encoded before hashing를 어떻게 수정할 수 있나요?, How to correct TypeError: Unicode-objects must be encoded before hashing? 질문 나는 이 오류를 가지고 있습니다: Traceback (most recent call last): File "python_md5_cracker.py", line 27, in m.update(line) TypeError: Unicode-objects must be encoded before hashing 나는 Python 3.2.2에서 이 코드를 실행하려고 할 때: import hashlib, sys m = hashlib.md5() hash = "" hash_file = input("해시가 있는 파일 이름은 무엇입니까? ") wordlist = input("워드리스트는 무엇입니까? (파일 이름을 입력하세요) ") try: hashdocument = open(hash_file, "r") except IO.. 2023. 11. 16.