객체 : 성질(변수), 할 수 있는 행동(함수)이 담긴 지표
: 필요한 변수와 함수가 담긴 지표
클래스 : 객체를 만들 수 있는 틀
객체가 갖고있는 변수 = 필드
객체가 행하는 함수 = 메서드
인스턴스 : 클래스라는 틀로 찍어낸 객체, 피조물
1. 클래스 정의 하기
class Human():
name = "Undefined"
age = 0
def birth(self):
print("응애")
Human 이라는 클래스를 만들었다.
name 과 age를 변수로 갖는다.
초기값을 지정해 주었다.
birth라는 함수 = 메서드를 갖는다.
birth(self)에서 "self"는 이 정의가 메서드라는 걸 알려준다.
2. 위에서 정의한 Human이라는 클래스 틀로 Jane이라는 객체를 찍어냈다.
찍어낸 객체인 Jane 이 바로 인스턴스이다.
Jane = Human()
Jane.name = Jane Kim
Jane.age = 10
Jane.birth()
# 결과 : 응애
Human에서 정의한 name 과 age 변수를 재정의 또는 사용하려면
Jane.name / Jane.age 로 사용할 수 있다.
메서드 또한 Jane.birth로 사용할 수 있다.
※헷갈렸던 부분
1. 한 객체의 메서드에서 그 객체의 필드를 참조할 땐 self를 이용해서 참조해야 한다.
= 클래스를 생성하면서 내부에 정의한 변수를 메서드에서 받아서 사용할 때
class Human():
age = 10
def introduce(self):
print(self.age, "살 입니다")
Jane = Human()
Jane.introduce()
# 결과 : 10살 입니다.
2. 매개변수를 입력받는 경우의 메소드 정의 방법
= 클래스를 생성하면서 내부에 정의한 변수를 메서드에서 받아서 사용 + 매개변수 입력이 필요한 메서드
class Human():
name = "Ud"
age = 0
def introduce(self, a,b):
self.name = a
self.age = b
Jane = Human()
Jane.introduce("제인",3)
print(Jane.name,"입니다.",Jane.age, "살 입니다.")
# 결과 : 제인 입니다. 3 살 입니다.
'programming' 카테고리의 다른 글
[Python] 파이썬 넘파이(Numpy)를 활용하여 난수 배열 만들기 (0) | 2021.12.10 |
---|---|
[Python] Numpy 라이브러리로 대용량 배열 데이터 만들기 (0) | 2021.12.09 |
[Python] 파이썬 나누기 연산 / 몫 구하기 / 나머지 구하기 (0) | 2021.12.08 |
[Python] 시퀀스란? (0) | 2021.12.08 |
[Python] 파이썬 리스트를 문자열로 바꾸기 / 문자열을 리스트로 바꾸기 (0) | 2021.12.07 |