데이터 분석을 위한 Python
✔️ 클래스(class)
✔️ 인스턴스(instance)
✔️ 메서드(method)
✔️ 클래스(class)
객체지향 프로그래밍
1. 절차적 프로그래밍
프로그래밍 순차적 수행(코드가 위아래로 절차적으로 진행 -> 기존의 파이썬 코드)
2. 함수형 프로그래밍
여러 개의 함수를 작성하여 함수에 기반해 프로그래밍 수행
코드의 재사용 가능 및 유지보수 용이
버그 발생률이 낮고 예측 가능성 높음
병렬 처리, 동시성 처리에 강함(멀티 코어 이용하는 경우 유리)
(파이썬의 함수 생성 및 활용)
3. 객체지향 프로그래밍
JAVA, C++ 등 클래스 기반으로 프로그래밍 수행
캡슐화, 상속, 다향성 같은 개념 사용
코드 재사용 특화 및 코드의 독립적 사용 가능(여러 사람이 사용하는 경우)
클래스가 필요한 이유
클래스는 객체지향 프로그래밍의 핵심
클래스 하나에 여러 개의 함수(메서드)를 포함
클래스 = 공장(커피머신 공장) - 커피머신
메서드 = 커피머신의 기능(에스프레소, 아메리카노, 카페라떼, 스팀 등)
# 더하기 함수
def add(num1, num2):
result = num1 + num2
return result
# 결과 확인
add(3, 5)
# 이전에 계산한 결과를 기억하는 계산기
result_cal = 0
def mul10(num):
global result_cal
print('result_cal: ',result_cal)
result_cal += num * 10
return result_cal
# 결과 확인
# 같은 결과 2번 눌러서 이전 계산값 저장되었는지 확인
mul10(10)
만약 mul10함수를 사용자1과 사용자2가 동시에 사용해야 하는 경우 발생한다면?
각각 사용할 수 있도록 함수를 여러 개 생성하면 가능?
하지만 사용자가 매우 많아지면 매우 비효율적
=> 하나의 코드로 여러 사람들이 사용할 때 독립적으로 작동하게 하는 클래스(class) 활용
# 함수를 계속 생성하면 비효율적
result_cal = 0
def mul10_1(num):
global result_cal
print('result_cal: ',result_cal)
result_cal += num * 10
return result_cal
result_cal_2 = 0
def mul10_2(num):
global result_cal_2
print('result_cal_2: ',result_cal_2)
result_cal_2 += num * 10
return result_cal_2
클래스 생성
pytorch 활용하는데 중요한 요소
메소드 = 함수 : 클래스 안에 정의한 함수를 메소드라고 지칭클래스의 이름은 카멜표기법으로 생성
클래스 생성 기본 형식
class 클래스명():
____def 메소드명1():
________실행할 코드
________return
____def 메소드명2():
________실행할 코드
________return
# 클래스 활용 계산기 생성
# 이전 결과를 기억하지는 X
class Calculator():
# self : 생성자
def __init__(self): # self Calculator()
self.result = 0
# 메소드 생성
def add(self, num):
self.result += num
return self.result
# 결과 확인
cal = Calculator()
cal.add(10)
✔️ 인스턴스(instance)
인스턴스
인스턴스 생성
생성된 클래스를 각각의 변수에 할당 = 사용자 등록
# 사용자에 따라 따로 할당해서 클래스 활용
user1 = Calculator()
user2 = Calculator()
user3 = Calculator()
인스턴스_클래스 사용
인스턴스를 활용한 클래스 사용 방법
변수에 클래스를 담아서 인스턴스 생성
공장에서 만든 커피머신을 사용자에게 배송
인스턴스 변수명 = 클래스명()
인스턴스를 생성하고 나면 인스턴스변수명.메소드 형식으로 클래스에 정의한 메소드 사용 가능
# 사용자에 따라 따로 할당해서 클래스 활용
user1 = Calculator()
user2 = Calculator()
user3 = Calculator()
# 클래스의 더하기 연산 결과 확인
print(user1.add(10))
print(user2.add(20))
print(user3.add(30))
✔️ 메서드(method)
메서드
메서드 생성
클래스 안에 정의하는 함수
클래스에 기능을 만들어줌
메서드 기본 형식
def 메소드명(self, 매개변수1, *매개변수2='', **kwargs):
____self.매개변수 = 매개변수
# 사칙연산이 가능한 FourCal 계산기 생성
class FourCal():
# self = 인스턴스
# 데이터를 입력받는 역할의 setdata method
def setdata(self, num1, *num2):
self.num1 = num1
self.num2 = num2
print('self.num1: ', self.num1)
print('self.num2: ', self.num2)
# 매개변수에 맞지 않게 넣는다면 오류 발생
sam = FourCal()
sam.setdata(1,5)
메서드_클래스 기능 추가(사칙연산 기능)
class FourCal():
# self = 인스턴스
# 데이터를 입력받는 역할의 setdata method
def setdata(self, num1, num2):
self.num1 = num1
self.num2 = num2
print('self.num1: ', self.num1)
print('self.num2: ', self.num2)
# 덧셈
def add(self):
result = self.num1 + self.num2
return result
# 뺄셈
def minus(self):
result = self.num1 - self.num2
return result
# 곱셈
def mul(self):
result = self.num1 * self.num2
return result
# 나눗셈
def div(self):
result = self.num1 / self.num2
return result
# 인스턴스 할당
sam = FourCal()
# 입력값 확인
sam.setdata(3,5)
print()
# setdata에 데이터가 입력되지 않으면 수행되지 않음
# 덧셈 확인
print(sam.add())
print()
# 뺄셈 확인
print(sam.minus())
print()
# 곱셈 확인
print(sam.mul())
print()
# 나눗셈 확인
print(sam.div())
이번 내용에서는 파이썬의 클래스와 클래스 생성 위한 인스턴스 및 메서드 활용에 대해 알아보았습니다.
데이터 분석을 하기 위해서는 가장 꾸준히 공부해야 하는 언어는 파이썬(Python)이라고 생각합니다.
앞으로 꾸준히 파이썬(Python) 내용을 공부하고 정리할테니 파이썬 코딩에 도움이 되었으면 좋겠습니다.
데이터를 가져오고 저장되는 DB에 대한 이해와 SQL 활용 능력도 중요하므로
제가 작성한 데이터 분석을 위한 SQL 글에 들어가서 DB와 MySQL에 대해 공부하면 좋을 것 같습니다.
'SQL/데이터 분석을 위한 MySQL' 카테고리의 글 목록
데이터 분석 공부 열심히 하는 중😁
everyonelove.tistory.com
또한 데이터 크롤링을 위해서 웹개발 언어에 대한 이해도 필요하기 때문에
제가 작성한 데이터 분석을 위한 HTML / CSS / Javascript 글에 들어가서 웹 개발 언어에 대해 공부하면 좋을 것 같습니다.
'HTML & CSS & Javascript/데이터 분석을 위한 웹 개발 언어' 카테고리의 글 목록
데이터 분석 공부 열심히 하는 중😁
everyonelove.tistory.com
제 블로그에 방문하면 데이터 분석과 관련된 다양한 정보들이 준비되어 있으니
관심 있는 분들은 방문해서 좋은 정보 얻어가시길 바랍니다.
ECODATALIST
데이터 분석 공부 열심히 하는 중😁
everyonelove.tistory.com
'Python > 데이터 분석을 위한 Python' 카테고리의 다른 글
[Python] 파이썬_파이썬의 datetime 모듈과 OS 모듈, 사용자 모듈 생성 및 활용 (0) | 2025.04.01 |
---|---|
[Python] 파이썬_파이썬 생성자와 클래스의 상속, 클래스 및 인스턴스의 속성, 메서드 활용 (0) | 2025.03.31 |
[Python] 파이썬_파이썬의 람다(lambda) 표현식과 예외 처리 (0) | 2025.03.28 |
[Python]파이썬_파이썬의 위치인수, 가변위치인수, 키워드 인수, 가변 키워드 인수 활용 (0) | 2025.03.28 |
[Python] 파이썬_파이썬 함수 생성과 함수의 매개변수 및 return 값 (0) | 2025.03.27 |