분류 전체보기(142)
-
Python의 마법 방법 VII
객체를 호출 가능하게 만들기 Python에서 콜러블은 한 쌍의 괄호와 선택적으로 일련의 인수를 사용하여 호출할 수 있는 객체입니다. 예를 들어 함수, 클래스 및 메서드는 모두 Python에서 호출 가능합니다. 콜러블은 작업을 수행할 수 있게 해주기 때문에 많은 프로그래밍 언어에서 기본입니다. Python을 사용하면 자신만의 콜러블을 만들 수 있습니다. 이렇게 하려면 클래스에 .call() 특수 메서드를 추가하면 됩니다. .call() 메소드가 있는 클래스의 모든 인스턴스는 함수처럼 동작합니다. 호출 가능 인스턴스의 일반적인 사용 사례는 호출 간에 계산된 데이터를 캐시하는 상태 저장 호출 가능이 필요한 경우입니다. 이는 일부 알고리즘을 최적화해야 할 때 유용합니다. 예를 들어, 효율성을 위해 이미 계산된 ..
2024.04.13 -
Python의 마법 방법 VI
설명자를 통해 속성 관리 Python 설명자는 특정 사용자 정의 클래스의 속성을 세부적으로 제어할 수 있는 클래스입니다. 설명자를 사용하여 특정 클래스의 속성 위에 함수와 유사한 동작을 추가할 수 있습니다. 설명자 클래스에는 최소한 .__get__()특수 메서드가 필요합니다. 그러나 전체 설명자 프로토콜은 다음 메서드로 구성됩니다. 방법설명 .get(self, instance, type=None) 관리되는 속성의 현재 값을 검색할 수 있는 Getter 메서드 .set(self, instance, value) 관리되는 속성에 새 값을 설정할 수 있는 Setter 메서드 .delete(self, instance) 포함 클래스에서 관리되는 속성을 제거할 수 있는 삭제자 메서드 .set_name(self, ow..
2024.04.12 -
Python의 마법 방법 V
증강 과제 산술 연산의 경우 변수의 현재 값을 사용하여 변수 자체를 업데이트하는 일반적인 표현식을 찾을 수 있습니다. 이 작업의 전형적인 예는 카운터나 누산기를 업데이트해야 하는 경우입니다. In [ ]: counter = 0 counter = counter + 1 counter = counter + 1 counter 이 코드 조각의 두 번째 및 세 번째 줄은 이전 값을 사용하여 카운터 값을 업데이트합니다. 이러한 유형의 연산은 프로그래밍에서 매우 일반적이므로 Python에는 증강 할당 연산자 라고 하는 단축어가 있습니다. 예를 들어, 추가를 위해 증가된 할당 연산자를 사용하여 위 코드를 단축할 수 있습니다. In [ ]: counter = 0 counter += 1 counter += 1 counter..
2024.04.11 -
Python의 마법 방법 IV
회원 운영자 Python에는 주어진 값이 값 모음에 있는지 여부를 확인할 수 있는 두 가지 연산자가 있습니다. 두 가지 연산자는 in 및 not in 입니다. 멤버십 테스트라고 알려진 검사를 지원합니다. 예를 들어, 숫자 목록에 숫자가 나타나는지 확인하려고 한다고 가정해 보겠습니다. 다음과 같이 할 수 있습니다: In [ ]: 2 in [2, 3, 5, 9, 7] In [ ]: 10 in [2, 3, 5, 9, 7] 첫 번째 예에서는 숫자 2가 숫자 목록에 있으므로 True 결과를 얻습니다. 두 번째 예에서는 숫자 10이 목록에 없으므로 False을 얻습니다. not in 연산자는 in과 유사하지만 부정으로 작동합니다. 이 연산자를 사용하면 주어진 값이 컬렉션에 없는지 확인할 수 있습니다. 멤버십 연산자..
2024.04.11 -
Python의 마법 방법 III
산술 연산자에 대한 추가 정보 연산자를 지원하는 매직 메소드는 expression을 포함하고 있는 각 객체의 상대적 위치에 영향을 받습니다. 그렇기 때문에 위 섹션에서 displacement는 킬로미터 단위이고 total은 미터 단위입니다. .__add__()을 예를 들어 보겠습니다. Python은 왼쪽 피연산자에서 이 메서드를 호출합니다. 해당 피연산자가 메서드를 구현하지 않으면 작업이 실패합니다. 왼쪽 피연산자가 메서드를 구현하지만 해당 구현이 원하는 대로 작동하지 않는 경우 문제가 발생할 수 있습니다. 다행히도 Python에는 이러한 문제를 해결할 수 있는 올바른 버전의 .__r*__()라는 연산자 메서드( )가 있습니다. 예를 들어, 객체와 정수 또는 부동 소수점 숫자 사이의 덧셈을 지원하는 Nu..
2024.04.09 -
Python의 마법 방법 II
사용자 정의 클래스에서 연산자 오버로딩 지원 Python에는 특수 기호, 기호 조합 또는 특정 유형의 계산을 지정하는 키워드인 여러 유형의 연산자가 있습니다. 내부적으로 Python은 특수 메서드를 사용하여 연산자를 지원합니다. 예를 들어 특수 메서드 .add()는 이미 본 것처럼 더하기 연산자(+)를 지원합니다. 실제로는 연산자 오버로딩이라고 알려진 연산자 뒤에 있는 이러한 메서드를 활용하게 됩니다 . 연산자 오버로딩은 연산자에 추가 기능을 제공하는 것을 의미합니다. 대부분의 내장 유형과 특정 지원 연산자를 사용하여 이를 수행할 수 있습니다. 그러나 이것이 Python 연산자를 지원하는 특수 메서드로 수행할 수 있는 전부는 아닙니다. 또한 이러한 메서드를 사용하여 사용자 정의 클래스에서 일부 연산자를 ..
2024.04.08