본문 바로가기

decorators4

Python 메모이제이션은 무엇이며, 파이썬에서 어떻게 사용할 수 있을까요?, What is memoization and how can I use it in Python? 질문 저는 방금 Python을 시작했고 memoization이 무엇이며 어떻게 사용하는지 전혀 모르겠습니다. 또한, 간단한 예제를 볼 수 있을까요? 답변 메모이제이션은 메소드 호출의 결과를 메소드의 입력에 기반하여 기억하고, 결과를 다시 계산하는 대신 기억된 결과를 반환하는 것을 효과적으로 의미합니다. 이것을 메소드 결과의 캐시로 생각할 수 있습니다. 자세한 내용은 Introduction To Algorithms (3e), Cormen et al.의 387페이지를 참조하십시오. 파이썬에서 메모이제이션을 사용하여 팩토리얼을 계산하는 간단한 예제는 다음과 같습니다: factorial_memo = {} def factorial(k): if k < 2: return 1 if k not in factorial_m.. 2023. 10. 24.
Python 파이썬에서 "at" (@) 기호는 무엇을 하는가요?, What does the "at" (@) symbol do in Python? 질문 파이썬에서 @ 기호는 무엇을 하는 것인가요? 답변 @ 기호는 줄의 처음에서 클래스와 함수 데코레이터로 사용됩니다: PEP 318: 데코레이터 파이썬 데코레이터 가장 일반적인 파이썬 데코레이터는 다음과 같습니다: @property @classmethod @staticmethod 중간에 @이 있다면 행렬 곱셈일 가능성이 높습니다: @를 이진 연산자로 사용. 2023. 6. 25.
Python 파이썬 함수 정의에서 ->는 무엇을 의미하는가요?, What does -> mean in Python function definitions? 질문 최근에 Python 3.3 문법 명세를 살펴보면서 흥미로운 것을 발견했습니다: funcdef: 'def' NAME parameters ['->' test] ':' suite Python 2에서 선택적인 '화살표' 블록이 없었고 Python 3에서의 의미에 대한 정보를 찾을 수 없었습니다. 그러나 이것은 올바른 Python이며 인터프리터에서도 인식됩니다: def f(x) -> 123: return x 이것이 어떤 종류의 사전 조건 구문일 수도 있다고 생각했지만: 여기서 x를 테스트할 수 없습니다. 아직 정의되지 않았기 때문입니다. 화살표 뒤에 무엇을 넣어도 (예: 2 < 1) 함수 동작에 영향을 미치지 않습니다. 이 구문 스타일에 익숙한 누군가가 설명해 줄 수 있을까요? 답변 이것은 함수 주석입니다... 2023. 6. 9.
Python functools.wraps는 무엇을 하는 것인가요?, What does functools.wraps do? 질문 다른 질문에 대한 답변에 댓글에서, 누군가는 functools.wraps가 무엇을 하는지 확실하지 않다고 말했습니다. 그래서, 나는 이 질문을 하여 나중에 StackOverflow에서 참고할 기록이 있도록 하고 싶습니다: functools.wraps는 정확히 무엇을 하는가요? 답변 데코레이터를 사용하면 하나의 함수를 다른 함수로 대체합니다. 다시 말해, 데코레이터를 사용하는 경우 def logged(func): def with_logging(*args, **kwargs): print(func.__name__ + " was called") return func(*args, **kwargs) return with_logging 위와 같은 데코레이터가 있다면 @logged def f(x): """does.. 2023. 6. 7.