파이썬도 객체지향 프로그래밍이 가능하다.
하지만 자바와 문법이 다르긴 하다.
class human:
def __init__(self, height, age):
self.height = height
self.age = age
// __init__ 함수는 객체가 호출될 때 사용되는 함수다.
self대신 다른 걸 써도 되지만 혼자 프로그래밍 할 거 아니면 self라 적자
메소드를 선언할 때도 매개변수로 self를 넣어줘야 한다.
class human:
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, "센치 입니다.")
호출하는 방법은 인스턴스 이름.메소드 이름() 이다.
인스턴스 이름이 sh면
sh.how_old() 가 되는 것이다.
원래는 human.how_old(sh) 이런 식으로 클래스 명.메소드 명(self 자리에 인스턴스 이름)의 형태가
돼야 하는데 인스턴스 명으로 시작하면 그 과정을 생략할 수 있다.
내용물이 같은 인스턴스 2개를 만들고 둘이 같냐고 물어보면 false가 나온다.
저장되는 메모리 위치가 다르기 때문이다.
추가로 인스턴스 이름.추가하고 싶은 변수 = 원하는 수
의 형태로 넣으면 객체에 변수를 추가할 수 있다.
중요 메소드를 클래스 내부에 선언할 때는 첫번째 매개변수는 반드시 현재 클래스의 객체가
되어야 한다. 관습적으로 이를 self라는 단어로 표시한다.
만약 메소드 내부에서 변수를 선언할 때 self.과 함께 선언하지 않을 경우 그 변수는 그 메소드의
지역변수가 된다. 즉 __init__안에서 self를 안붙이면 __init__함수가 끝나면 메모리에서 사라진다.
'파이썬' 카테고리의 다른 글
6주차, 파이썬 클래스 상속 (0) | 2022.01.26 |
---|---|
6주차, 객체지향, 절차지향, 특수메소드 (0) | 2022.01.26 |
6주차, 모듈, 패키지 정리, __name__ (0) | 2022.01.25 |
6주차, 함수명을 변수로 할당 (0) | 2022.01.24 |
6주차, 외장함수 (time, os, sys 요약) (0) | 2022.01.24 |
댓글