TIL/Python

TIL (7/11) <class, 불리언 인덱싱, 데코레이션, upper(), lower()>

jojoon2786 2024. 7. 11. 17:20

클래스 기본 구조

여기서 __init__ 메서드는 클래스의 생성자로, 객체가 생성될 때 호출되며 초기화 작업을 수행

클래스 내부의 메서드들은 클래스의 동작을 정의하는 함수임.

메서드의 첫 번째 매개변수로 self를 반드시 사용해야 함. 이는 해당 메서드가 속한 객체를 가리킴.

 

클래스의 속성과 메소드

클래스(Class)는 객체(Object)를 생성하기 위한 템플릿이며, 메서드(Method)와 속성(Attribute)을 가질 수 있음.

  • 메서드(Method)
    • 클래스 내부에 정의된 함수를 말함.
    • 메서드는 클래스에 속한 함수, 특정 작업을 수행하거나 클래스의 상태를 변경하는 역할
    • 메서드는 일반적으로 클래스의 인스턴스(instance)에서 호출되며, 해당 인스턴스의 상태에 따라 동작
    • 일반적으로 self 매개변수를 첫 번째 매개변수로 사용하여 메서드가 속한 인스턴스를 참조
  • 속성(Attribute)
    • 클래스나 클래스의 인스턴스에 속한 변수
    • 속성은 클래스나 인스턴스의 상태를 나타냅니다. 즉, 객체의 데이터를 저장
    • 각 인스턴스마다 고유한 값이 가질 수 있는 인스턴스 속성과 클래스에 속한 공유 속성(static attribute)이 있음.
class Dog:
    def __init__(self, name):    << 얘가 메소드
        self.name = name # << 얘가 인스턴스 속성
# Dog 클래스의 인스턴스 생성
my_dog = Dog("Buddy")
print(my_dog.name) # 출력: Buddy

 

불리언 인덱싱

불리언 인덱싱(Boolean indexing)은 조건에 따라 요소를 선택하는 방법 중 하나

Pandas에서 데이터를 조건에 맞게 선택할 때 많이 사용함. 파이썬에서는 Numpy를 활용하여 사용 가능.

 

import numpy as np

# 배열 생성
arr = np.array([1, 2, 3, 4, 5])

# 불리언 배열 생성 (조건에 따라 True 또는 False 값을 갖는 배열)
condition = np.array([True, False, True, False, True])

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

# 결과 출력
print("Result using boolean indexing:", result)  # 출력: [1 3 5]

# 불리언 인덱싱을 사용하여 배열에서 짝수인 요소만 선택
evens = arr[arr % 2 == 0]

# 결과 출력
print("Even numbers using boolean indexing:", evens) # 출력: [2 4]

 

데코레이션

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()

위에서 @my_decorator 아래에 있는 함수가 func으로서 my_decorator 함수의 인로 들어감.

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

문자열.upper() > 문자열을 대문자로 변환하여 반환

문자열.lower() > 문자열을 소문자로 변환하여 반환