반응형
Python은 유연하고 강력한 프로그래밍 언어로, 변수와 객체 지향 프로그래밍(OOP)을 통해 효과적인 코드를 작성할 수 있습니다. 이 튜토리얼에서는 변수의 활용과 OOP의 기본 개념, 그리고 Python에서 이를 어떻게 구현하는지에 대해 알아보겠습니다.
1. 변수 활용
변수는 데이터를 저장하기 위한 이름입니다. Python에서는 변수에 데이터를 동적으로 할당하며, 변수의 타입을 명시적으로 선언할 필요가 없습니다.
변수의 기본 사용법
# 변수 선언 및 할당
name = "Alice"
age = 25
height = 1.68
# 변수 출력
print(f"이름: {name}, 나이: {age}, 키: {height}m")
변수의 특징
- 동적 타입 언어: 변수에 저장된 데이터의 타입은 런타임에 결정됩니다.
x = 10 # 정수 x = "Hello" # 문자열
- 재할당 가능: 변수에 저장된 값은 변경될 수 있습니다.
- 변수명 규칙: 알파벳, 숫자, 밑줄(_)로 구성되며, 숫자로 시작할 수 없습니다.
변수 활용 예제
여러 변수에 값 할당
x, y, z = 10, 20, 30
print(x, y, z)
상수 사용
Python에서는 상수를 위한 별도의 키워드가 없지만, 관습적으로 대문자로 변수명을 작성합니다.
PI = 3.14159
2. 객체 지향 프로그래밍 (OOP) 기초
객체 지향 프로그래밍은 데이터를 객체로 모델링하고, 객체 간의 상호작용을 통해 프로그램을 설계하는 방법론입니다. Python은 OOP를 강력히 지원하며, 클래스를 통해 객체를 생성할 수 있습니다.
객체 지향 프로그래밍의 주요 개념
- 클래스(Class): 객체의 설계도. 객체를 정의하는 데 사용됩니다.
- 객체(Object): 클래스에서 생성된 인스턴스.
- 속성(Attribute): 객체가 가지는 데이터.
- 메서드(Method): 객체의 동작을 정의하는 함수.
클래스와 객체 생성
클래스 정의 및 객체 생성
# 클래스 정의
class Dog:
# 생성자 메서드
def __init__(self, name, breed):
self.name = name # 속성
self.breed = breed # 속성
# 메서드 정의
def bark(self):
print(f"{self.name}가 짖습니다!")
# 객체 생성
dog1 = Dog("Buddy", "Golden Retriever")
# 속성 및 메서드 사용
print(dog1.name) # 출력: Buddy
dog1.bark() # 출력: Buddy가 짖습니다!
OOP의 주요 특징
- 캡슐화(Encapsulation): 데이터와 메서드를 하나의 단위로 묶고, 데이터에 직접 접근하지 못하도록 제한.
- class Car: def __init__(self): self.__speed = 0 # 비공개 속성 def set_speed(self, value): if value >= 0: self.__speed = value def get_speed(self): return self.__speed car = Car() car.set_speed(50) print(car.get_speed()) # 출력: 50
- 상속(Inheritance): 기존 클래스의 속성과 메서드를 재사용하여 새로운 클래스를 생성.
- class Animal: def speak(self): print("소리를 냅니다.") class Cat(Animal): def speak(self): print("야옹!") cat = Cat() cat.speak() # 출력: 야옹!
- 다형성(Polymorphism): 같은 이름의 메서드가 다양한 방식으로 동작.
- class Shape: def area(self): pass class Rectangle(Shape): def __init__(self, width, height): self.width = width self.height = height def area(self): return self.width * self.height rect = Rectangle(5, 10) print(rect.area()) # 출력: 50
- 추상화(Abstraction): 불필요한 세부 사항을 숨기고, 중요한 부분만 노출.
3. 변수와 OOP 결합하기
변수와 객체 지향의 개념을 결합하면 강력한 프로그램을 작성할 수 있습니다.
예제: 은행 계좌 클래스
class BankAccount:
def __init__(self, owner, balance=0):
self.owner = owner
self.__balance = balance
def deposit(self, amount):
if amount > 0:
self.__balance += amount
print(f"{amount}원이 입금되었습니다. 잔액: {self.__balance}원")
def withdraw(self, amount):
if 0 < amount <= self.__balance:
self.__balance -= amount
print(f"{amount}원이 출금되었습니다. 잔액: {self.__balance}원")
else:
print("잔액이 부족합니다.")
def get_balance(self):
return self.__balance
# 객체 생성 및 사용
account = BankAccount("Alice")
account.deposit(1000)
account.withdraw(500)
print(account.get_balance()) # 출력: 500
결론
Python의 변수와 객체 지향 프로그래밍은 강력한 도구로, 데이터를 효율적으로 관리하고 구조적인 코드를 작성하는 데 도움을 줍니다. 변수 활용과 OOP의 개념을 잘 익히면 Python을 활용한 다양한 프로젝트에서 강력한 코드를 작성할 수 있습니다!
반응형
'테크 > python basic' 카테고리의 다른 글
함수의 개념과 작성법: 코드 재사용의 시작 (1) | 2025.01.22 |
---|---|
조건문과 반복문: if, for, while 완벽 가이드 (1) | 2025.01.17 |
Python의 연산자: 산술, 비교, 논리 연산자를 이해하자 (0) | 2025.01.17 |
Python의 주요 데이터 타입: 리스트, 튜플, 딕셔너리, 집합, Bool (0) | 2025.01.16 |
Python의 Slice 이해하기: 강력한 데이터 접근 방법 (0) | 2025.01.14 |