본문 바로가기
코딩

Python class와 def 사용 방법

by mailwrite1004 2025. 4. 2.

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에서 더욱 효율적인 코드를 작성해 보세요! 🚀

'코딩' 카테고리의 다른 글

💻 C언어 vs Python, 어떤 차이가 있을까?  (0) 2025.04.05
파이썬 데이터 타입 완벽 정리  (0) 2025.04.03
Python while문 사용 방법  (0) 2025.04.02
Python for문 사용 방법  (0) 2025.04.02
Python if문 사용 방법  (0) 2025.04.02