객체(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
'Dev. > Python' 카테고리의 다른 글
Python :: 예외처리 / 사용자 예외 처리, 파일 입출력 (0) | 2022.07.20 |
---|---|
Python :: 생성자 (초기화 메소드) (0) | 2022.07.19 |
python :: 객체 지향 프로그래밍 (0) | 2022.07.14 |
python :: 전역변수와 지역변수 (0) | 2022.07.14 |
python :: Dictionary 딕셔너리 (0) | 2022.07.12 |
댓글