코딩
Python class와 def 사용 방법
mailwrite1004
2025. 4. 2. 13:23
Python에서는 코드를 모듈화하고 재사용성을 높이기 위해 class와 def를 사용합니다.
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를 사용하여 객체를 정의하고, 속성과 메서드를 포함할 수 있습니다.
- 클래스 상속을 활용하여 기존 클래스를 확장할 수 있습니다.
이제 class와 def를 활용하여 Python에서 더욱 효율적인 코드를 작성해 보세요! 🚀