Small Grey Outline Pointer Python :: 클래스와 객체
본문 바로가기
Dev./Python

Python :: 클래스와 객체

by sso. 2022. 7. 19.

객체(instance variable)
클래스는 추상적인 개념이고 이 추상적인 개념을 실체화(구체화)시켜야지만 사용할 수 있다
따라서 추상적인 개념을 실체화(구체화)시켜놓은 것을 객체라고 한다

클래스 객체
자동차 엄마차
도형   세모

 

객체화(instance)
추상적인 개념을 구체화 시키는 작업
객체명 = 클래스명()

 

객체 생성 시 '데이터'와 '기능'이 함께 채워져서 만들어진다

그러나 사실은 객체 속 데이터는 나중에 지워진다

파이썬의 객체 속에 변수가 생성되는 시점은 첫 대입연산을 진행하는 시점이다

 


 

인스턴스 변수 : 인스턴스(객체) 안에 존재하는 변수

 

인스턴스 메소드 :  인스턴스(객체) 안에 존재하는  메소드(함수)

인스턴스 생성 후, '참조 변수.메소드 명()'으로 호출

  ex) Exam ex = new Exam(); ex.example = "예시";

 

 

 


class AgeInfo: #클래스 AgeInfo의 정의
    def up_age(self): #클래스 안에 담긴 up_age 함수
        self.age += 1
    def get_age(self): #클래스 안에 담긴 get_age 함수
        return self.age


def main():
    fa = AgeInfo() #아빠 나이 객체 생성
    mo = AgeInfo()
    me = AgeInfo()
    fa.age=20 #아빠 현재 나이
    mo.age=20
    me.age=9
    sum = fa.get_age() + mo.get_age() + me.get_age()
    print("가족나이 합: ",sum)
    fa.up_age() #아빠 나이 한살 올림
    mo.up_age()
    me.up_age()
    sum = fa.get_age() + mo.get_age() + me.get_age()
    print("1년후의 합: ", sum)

main()

가족나이 합:  49
1년후의 합:  52

 

 


 

 

self

클래스를 처음 만들면 모든 메소드의 첫 인자는 'self'라고 놓고 시작

파이썬에서는 클래스에서 사용하는 함수의 첫번째 인자(parameter)를 self로 사용하는 것이 원칙

class 클래스이름:
    def __init__(self, 매개변수1, 매개변수2):
        self.속성1 = 매개변수1
        self.속성2 = 매개변수2

self에 대한 값은 파이썬이 자동으로 넘겨준다

클래스 안에서 속성에 접근할 때는 self.속성 형식

클래스 바깥에서 속성에 접근할 때는 인스턴스.속성 형식으로 접근

 

 

class AgeInfo: #클래스 AgeInfo의 정의
    def up_age(self): #클래스 안에 담긴 up_age 함수
        self.age += 1
    def get_age(self): #클래스 안에 담긴 get_age 함수
        return self.age
    def set_age(self,age): #self는 파이썬이 자동으로 선언, 내가 매개변수로 직접 정의한 age
        self.age = age


def main():
    fa=AgeInfo()
    fa.set_age(20) #위에 매개변수가 두개 있지만, 신경쓰지 않고 1개만 넣어주면 된다
    fa.up_age()
    print("1년후 아빠 나이: ", fa.get_age())

main()

21

 

 

 

 

 

728x90

댓글