코딩

Python class와 def 사용 방법

mailwrite1004 2025. 4. 2. 13:23

Python에서는 코드를 모듈화하고 재사용성을 높이기 위해 classdef를 사용합니다.


1. 함수 정의 (def)

def 키워드를 사용하여 함수를 정의할 수 있습니다. 함수는 특정 작업을 수행하는 코드 블록으로, 필요할 때 여러 번 호출할 수 있습니다.

기본 함수 정의

def greet():
    print("Hello, World!")

greet()  # 함수 호출

출력:

Hello, World!

매개변수가 있는 함수

def greet(name):
    print(f"Hello, {name}!")

greet("Alice")

출력:

Hello, Alice!

반환값이 있는 함수

def add(a, b):
    return a + b

result = add(3, 5)
print(result)

출력:

8

기본값을 가지는 매개변수

def greet(name="Guest"):
    print(f"Hello, {name}!")

greet()      # 기본값 사용

출력:

Hello, Guest!

가변 매개변수 (*args, **kwargs)

def sum_all(*args):
    return sum(args)

print(sum_all(1, 2, 3, 4, 5))

출력:

15

*args는 여러 개의 인수를 받을 때 사용됩니다.

def person_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

person_info(name="Alice", age=30, city="New York")

출력:

name: Alice
age: 30
city: New York

**kwargs는 키-값 쌍의 형태로 여러 개의 인수를 받을 때 사용됩니다.


2. 클래스 정의 (class)

클래스는 객체를 생성하기 위한 설계도입니다. 객체지향 프로그래밍(OOP)에서 중요한 개념이며, 데이터를 구조화하고 동작을 정의하는 데 사용됩니다.

기본 클래스 정의

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def greet(self):
        print(f"Hello, my name is {self.name} and I am {self.age} years old.")

person1 = Person("Alice", 30)
person1.greet()

출력:

Hello, my name is Alice and I am 30 years old.

클래스 속성과 메서드

  • __init__ 메서드는 생성자로, 객체가 생성될 때 자동으로 호출됩니다.
  • self는 현재 인스턴스를 가리킵니다.
  • greet()는 객체의 행동을 정의하는 메서드입니다.

클래스 상속

기존 클래스를 확장하여 새로운 클래스를 만들 수 있습니다.

class Student(Person):
    def __init__(self, name, age, student_id):
        super().__init__(name, age)
        self.student_id = student_id

    def study(self):
        print(f"{self.name} is studying.")

student1 = Student("Bob", 20, "S12345")
student1.greet()
student1.study()

출력:

Hello, my name is Bob and I am 20 years old.
Bob is studying.

super().__init__(name, age)를 사용하여 부모 클래스의 생성자를 호출할 수 있습니다.


정리

  • def를 사용하여 함수를 정의할 수 있으며, 매개변수와 반환값을 설정할 수 있습니다.
  • class를 사용하여 객체를 정의하고, 속성과 메서드를 포함할 수 있습니다.
  • 클래스 상속을 활용하여 기존 클래스를 확장할 수 있습니다.

이제 classdef를 활용하여 Python에서 더욱 효율적인 코드를 작성해 보세요! 🚀