📒 Today I Learn/🐍 Python

알면 유용한 파이썬 문법 (4) 불리언 인덱싱, 데코레이션

ny:D 2024. 5. 7. 18:53

불리언 인덱싱

💡 불리언((Boolean) 자료형 : 주어진 조건이 참(True) 또는 거짓(False)을 나타내는 데 사용

1. 불리언 배열을 활용한 인덱싱

arr = np.array([1, 2, 3, 4, 5])

condition = np.array([True, False, True, False, True])

# 불리언 인덱싱을 사용하여 조건에 맞는 요소 선택
result = arr[condition]

print("Result using boolean indexing:", result)  

## 출력: [1 3 5]
  • 배열 arr과 조건을 담은 불리언 배열 condition을 생성
    • 불리언 인덱싱 : arr[불리언 배열]

2. 불리언 인덱싱

evens = arr[arr % 2 == 0]

print("Even numbers using boolean indexing:", evens)  
## 출력: [2 4]
  • 불리언 인덱싱을 이용해 조건이 '참(True)'인 경우의 값만 인덱싱

데코레이션 사용하기

데코레이션이란?

💡 데코레이션 : 기존의 함수를 따로 수정하지 않고도 추가 기능을 넣고 싶을 때 사용하는 기능
  • 파이썬에서 별도의 수정 없이 함수나 메서드의 기능을 확장하거나 수정하는 기능
  • 따로 함수 내부의 구조를 바꾸지 않고 함수 외부에 간단한 명령어를 작성하여 작동할 수 있음

활용 예시

def my_decorator(func):
    def wrapper():
        print("Something is happening before the function is called.")
        func()
        print("Something is happening after the function is called.")
    return wrapper

@my_decorator
def say_hello():
    print("Hello!")

say_hello()

## "Something is happening before the function is called."
## "Hello!"
## "Something is happening before the function is called."
  • my_decorator(매개변수)라는 데코레이터를 만들어준다.
    • def wrapper():
      원래의 함수 앞에 붙이고 싶은 문구
      원래의 함수가 들어갈 자리(매개변수)
      원래의 함수 뒤에 붙이고 싶은 문구
  • 데코레이터를 붙이고 싶을 때에는 `@my_decorator`처럼 데코레이터 앞에 '@'를 붙여 간단하게 호출 가능