본문 바로가기

패스트캠퍼스_컴공전공필수+인공지능/0원 챌린지

2/25(토) 파이썬 - 클래스3

ch06. 클래스 - 3. 객체지향과 절차지향


3. 객체지향과 절차지향

  • 절차지향 (구조적 프로그래밍):
    • 데이터 구조와 그 데이터를 변화 시키는 알고리즘으로 구성
    • 하나의 코드안에 다 집어넣음, 순차적(아마도)
  • 객체지향 :
    • 객체들이 메시지를 통하여 통신함으로써 => 원하는 결과를 얻는다.
    • 각 객체는 고유의 데이터와 데이터를 처리할 수 있는 메소드로 구성
    • (클래스, 함수 같이 따로 기능과 변수(데이터,내용)을 갖고 있다가 해당 기능 필요하면 불러서 씀, 아마도)
    • 사전적 더 자세한 설명:
      • OOP : object-oriented-programming
      • 컴퓨터 프로그래밍 패러다임 중 하나이다.
      • 기존, 절차지향 프로그래밍 : 프로그램 -> 명령어의 목록으로 보는 시각
      • 객체지향 프로그래밍 : 프로그램 -> 객체 (여러개의 독립된 단위) 들의 모임으로 보는 시각
      • 객체 - 객체 : 메시지 주고받음, 데이터를 처리할 수 있음.
      • 장점 :
        • 프로그램 더 유연하고 변경이 용이하게 만듦 -> 대규모 소프트웨어 개발에 용이하다.
        • 프로그래밍 더 쉽게 배울 수 있다.
        • 소프트웨어 개발과 보수를 간편하게 한다.
        • 보다 직관적인 코드 분석을 가능하게 한다.
      • 단점 :
        • 지나친 프로그램 객체화 : 실제 세계의 모습을 그대로 반영하지 못한다.
  • python 의 모든 것이 객체이다!!
    • string, list, int 등등... 모두 객체! 따라서 객체지향 프로그래밍!
    • 따라서 문자열(string) 에 문자열.upper 등 / 정수형.type() 등 뒤에 함수 호출이 가능했던 것이다!

[실습을 해보자]

class human:	# 클래스 (틀) 만듬 <변수 + 메소드>
# 클래스 메소드 -> (self, ...) 첫번째 매개변수 클래스 메소드 자체: self  => 나중에 변수 만들때 전역변수로 사용할 수 있게끔 만들때 사용 (self.변수이름)
  def __init__(self, height, age):	# 초기화 -> 주로 변수 초기화
    self.height = height
    self.age = age
    
  def how_old(self):
    print(self.age, "살 입니다")
  def how_tall(self):
    print(self.height, 'cm 입니다')
    
  def __del__(self):	# 객체 삭제될때 실행
    print('삭제되었다')
    
    
seunghyun = human(180,31)	# 클래스 객체 생성

print(seunghyun.height)	# 클래스 객체로 멤버변수 접근
print(seunghyun.age)
seunghyun.how_old()	# 클래스 객체로 메소드(함수) 점근

del seunghyun	# 객체 아이예 삭제
# 이후에 사용하려하면 없다 나온다.

 
 


* 필수 삽입 링크 : http://bit.ly/3Y34pE0

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

<사진 2장>

 
> 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.