본문으로 바로가기
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

3. 클래스와 객체


1) 클래스 기초


- 파이썬은 객체지향 방식과 절차적 방식 모두 개발 가능.

- 해킹에서는 절차적 방법이 편리.

- 객체지향 언어는 상속과 조립을 이용해 개발 생산성 향상 및 재사용성을 높일 수 있음.

class 클래스명:
	def __init__(self, 인자):
	def 함수명(인자):
class 클래스명 (상속 클래스명):
	def 함수명(인자):

☞ 1줄 클래스 생성 : 예약어 class를 사용하면 클래스를 선언가능.

☞ 2줄 생성자 : 클래스 생성시 디폴트로 호출되는 생성자. 첫 번째 인자는 자신을 가리키는 self가 들어감. 불필요시 생략가능.

☞ 4줄 상속 : 다른 클래스를 상속하려면 클래스 선언시 인자로 상속받을 클래스명을 넣음. 상위 클래스의 멤버변수와 함수를 그대로 재사용 가능.


2) 클래스 생성


- 앞전에 작성했던 함수 예제를 클래스로 대체하여 클래스 사용법을 익힘.

☞ 함수 예제 : http://hyeonnii.tistory.com/90

# This is comment

#class Hero start
class Hero:
    def __init__(self, name, age, height):
        self.name = name
        self.age = age
        self.height = height
    def printHero(self):
        print "\n----------------------------------------"
        print "1. name : ", self.name
        print "2. age : ", self.age
        print "3. height : ", self.height
#class Hero end

#class MyHero start
class MyHero(Hero):
    def __init__(self, myFood, myCal, index):
        Hero.__init__(self, "GilDong", 9, 180)
        self.food = myFood
        self.cal = myCal
        self.idx = index
    def printFood(self):
        print "4. food : ", self.food, "[cal", self.cal[self.idx], "]"
        print ">>> full!!!"       
        print "\n----------------------------------------\n"
#class MyHero end
        
food = ["burger", "rice", "pizza", "bulgogi"]
cal = ["100.2", "89.8", "90", "55.3"]

selectedFood = raw_input("select food: ")
  
i=0
 
for each_item in food:
 
    if(each_item == selectedFood):
        myHero = MyHero(selectedFood, cal, i)
        myHero.printHero()
        myHero.printFood()
    i = i+1

☞ 클래스 변수 사용시 self.변수명 형태로 사용함.

☞ 19줄 생성자 호출 : 상위 클래스의 생성자를 호출하여 객체를 초기화하여 생성.

☞ 39줄 클래스 생성 : MyHero 클래스 생성. 생성자에 필요한 인자를 함께 넘겨줌.