본문 바로가기
파이썬

6주차, 클래스

by 호놀롤루 2022. 1. 26.

파이썬도 객체지향 프로그래밍이 가능하다.

하지만 자바와 문법이 다르긴 하다.

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__함수가 끝나면 메모리에서 사라진다.

댓글