본문 바로가기

Python/Python FAQ540

Python "TypeError: method()는 1개의 위치 인수를 필요로 하지만 2개가 제공되었습니다" 하지만 저는 하나만 전달했습니다., "TypeError: method() takes 1 positional argument but 2 were given" but I only passed one 질문 만약 내가 클래스를 가지고 있다면... class MyClass: def method(arg): print(arg) ... 나는 객체를 생성하기 위해 사용하는데... my_object = MyClass() ... 내가 method("foo")를 호출하는데... >>> my_object.method("foo") Traceback (most recent call last): File "", line 1, in TypeError: method() takes exactly 1 positional argument (2 given) ... Python이 나에게 두 개의 인자를 주었다고 말하는 이유는 무엇인가요? 하나만 주었는데요? 답변 파이썬에서는 다음과 같습니다: my_object.method("foo") .. 2023. 10. 25.
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 플라스크에서 POST된 JSON을 어떻게 받을 수 있나요?, How to get POSTed JSON in Flask? 질문 간단한 Flask API를 구축하려고 합니다. 이 API에서는 POST된 JSON을 읽고 싶습니다. POST는 Postman Chrome 확장 프로그램을 사용하여 수행하며, POST된 JSON은 단순히 {"text":"lalala"}입니다. 다음 방법을 사용하여 JSON을 읽으려고 합니다: @app.route('/api/add_message/', methods=['GET', 'POST']) def add_message(uuid): content = request.json print content return uuid 브라우저에서는 올바르게 GET에 입력한 UUID를 반환하지만 콘솔에서는 None만 출력됩니다. (예상대로 {"text":"lalala"}를 출력해야 합니다). Flask 메소드 내에서 .. 2023. 10. 24.
Python 가상환경 안에서 파이썬이 실행 중인지 확인하세요., Determine if Python is running inside virtualenv 질문 현재 스크립트가 가상 환경 내에서 실행되고 있는지 확인할 수 있을까요? 답변 신뢰할 수 있고 문서화된 방법은 sys.prefix와 sys.base_prefix를 비교하는 것입니다. 동일하다면 가상 환경이 아니고, 그렇지 않다면 가상 환경입니다. 가상 환경 안에서 sys.prefix는 가상 환경의 디렉토리를 가리키고, sys.base_prefix는 환경을 생성한 Python 인터프리터를 가리킵니다. 이는 venv의 작동 방식에 문서화되어 있습니다: 현재 인터프리터가 가상 환경에서 실행 중인지 확인하려면 sys.prefix != sys.base_prefix를 확인하는 것만으로 충분합니다. 이 방법은 Python 표준 라이브러리인 venv와 virtualenv (버전 20부터)에서 작동합니다: def i.. 2023. 10. 24.