절차(구조적) 지향 프로그램(procedural language)
- C, R, plsql
- 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며
프로그램 전체가 유기적으로 연결되도록 만드는 프로그램밍 기법이다. - 반복되는 코드는 함수를 만들어서 사용
- 단점 :
- 재사용할 수 없다.
- 확장성이 떨어진다.
- 유지보수가 어렵다.
객체 지향 프로그램(Object Oriented Language, OOP)
- JAVA, C++, C#, Python
- 구조적 프로그래밍과 다르게 큰 문제를 작은 문제들로 해결할 수 있는 객체들을 만든 뒤
이 객체들을 조합해서 큰 문제를 해결하는 방법 - 객체 : 사물 개념중에 명사로 표현할 수 있는 것을 의미한다.
- 클래스 : 객체를 설명해 놓은 것(객체의 설계도)
- 인스턴스 : 클래스를 메모리에 만들어서 사용하도록 하는 의미
객체 = 속성 + 메소드
속성(변수) : 값을 표현해서 저장하는 공간
메소드 : 함수, 기능의 프로그램
class
1. 기본 사용법
class 클래스이름 : def 함수이름(인수이름): 함수식 |
# 클래스 생성 |
|
# 인스턴스 만들기 test1 = test() |
|
# 인스턴스 사용 test1.txt('주먹밥') |
|
test2 = test() test2.txt('스콘') |
|
# class 삭제 |
2. 초기 생성자 사용하기
def __init__(self) :
- 초기 생성자
- 인스턴스를 만들때 제일 먼저 수행되는 생성자(필수아님)
- 클래스를 인스턴스화 할때 자동으로 초기화 해주는 메소드
- 초기 생성자 안에 있으면 인스턴스변수도 되고 클래스 변수도 된다.
class 클래스이름: |
# 초기 생성자를 사용한 클래스 생성 class Show: def __init__(self): print("개미는 오늘도 열심히 일을 하네") s = Show() |
|
# 초기 생성자를 만들지 않아도 오류 안남 class Show1: pass s = Show1() |
|
# 초기 생성자로 변수선언 cal1 = Calculator() |
|
# 초기 생성자로 번수선언하지 않았을때 cal1 = Calculator() |
|
# 초기 생성자 안에 있으면 인스턴스변수도 되고 클래스 변수도 된다. class Travel : |
|
t1 = Travel("한국") t2 = Travel("미국")
Travel.country |
|
Travel.country += "한국"
Travel.country += "미국"
Travel.country |
|
# 초기 생성자 안에 있으면 인스턴스변수도 되고 클래스 변수도 된다. class Travel : |
|
t1 = Travel("한국") t2 = Travel("미국")
|
|
Travel.country.append("중국")
Travel.country.append("영국")
Travel.country |
3. self 인수
self :
- 자기 자신의 인스턴스를 의미한다.
- 이 인스터스에 있는 속성만 사용하겠다.(로컬 개념)
class Menu: # 인스턴스 생성 |
|
m1.MenuPrint() | |
m1.name = '카페라떼' m1.price = 3000 m1.MenuPrint() |
|
m2 = Menu() m2.MenuPrint() |
|
m1.store = '바나프레소' m1.MenuPrint() |
|
print(m1.store) |
4. 집계값 더하고 빼기
def __del__(self) : 인스턴스를 삭제하면 무조건 수행
class Country : count = 0 def __init__(self,arg1,arg2): self.name = arg1 self.city = arg2 Country.count += 1 def show(self): print("국가 :", self.name,"\t","도시 :", self.city) def con_count(self): print("전체 국가 수는 %d"%Country.count) |
|
con1 = Country("한국","서울")
con2 = Country("미국","워싱턴") |
|
# 인스턴스를 삭제해도 전체 국가수는 줄어들지 않는다. del con2 con1.show() con1.con_count() |
|
class Country : count = 0 def __init__(self,arg1,arg2): self.name = arg1 self.city = arg2 Country.count += 1 def show(self): print("국가 :", self.name,"\t","도시 :", self.city) def con_count(self): print("전체 국가수는 %d"%Country.count) def __del__(self) : Country.count -= 1 |
|
con1 = Country("한국","서울")
con2 = Country("미국","워싱턴") |
|
# 인스턴스를 삭제하면 전체 국가수가 줄어든다. del con2 con1.show() con1.con_count() |
'컴퓨터 > 파이썬' 카테고리의 다른 글
파이썬 - Numpy (0) | 2020.05.07 |
---|---|
파이썬(Python) - Class ② (0) | 2020.04.07 |
파이썬(Python) - 스크래핑 ④ selenium을 이용한 크롤링 (0) | 2020.04.05 |
파이썬(Python) - 크롤링 연습 ② 국민 청원 청원 목록 수집(추천순) (2) | 2020.04.03 |
파이썬(Python) - 한글 형태소 분석 (0) | 2020.04.02 |