[Python] 클래스(self, __init__, 변수) 사용방법

클래스를 사용하는 방식은 자바와 같다 하지만 자바와는 다르게 첫번째 매개변수에 self가 들어간다.

self는 클래스의 객체를 지칭하고 self를 통해서 속성을 정해준다.  자바에서의 this이다.

 

또 클래스 안에 __init__ 라는 초기화 메서드라고 있는데 이 메서드는 클래스의 객체가 만들어질 때 자동으로 호출돼서 그 객체의 속성을 정해줄수 있다.  즉 자바에서 생성자 역할을 하는 메서드이다.

 

[예제1]

class Human:
    def __init__(self, name, age):
        self.name = name
        self.age = age
 
    def info(self):
        print("나의 이름은"self.name, "나이는"self.age, "입니다")
 
human1 = Human("짱구""10")
human2 = Human("철수""12")
human1.info()
human2.info()
 
 

 

Human 클래스의 객체 human1, human2를 생성하였고 생성할때 name과 age를 인자로 넘겨서 객체의 속성을 정해준다. human1의 name은 짱구고, age는 10이다.

__init__ 함수는 자바에서 생성자 함수로 생각하면 되며 예약어이다. 이름이 변경 돼서는 안된다. 

self 도 역시 이름과 매개변수중 맨 앞에 있어야 하는걸 지켜야 한다.

 

 

그러면 클래스의 변수는 필요가 없나라고 생각할 수 있는데 클래스에서의 변수는 자동적으로 주어지게 하는 하나의 속성이라고 생각하면 된다. 예를 들어 사람의 힘을 기본 5라고 지정하고 싶을때 클래스에 변수 힘 = 5 를 주면 된다.

 

[예제2]

class Human:
    power = 5
 
    def __init__(self, name, age):
        self.name = name
        self.age = age
 
    def info(self):
        print("나의 이름은"self.name, "나이는"self.age, "입니다""힘은"self.power, "입니다.")
 
human1 = Human("짱구"10)
human2 = Human("철수"12)
 
human1.power += 1
 
human1.info()
human2.info()
 
 

 

위 예제는 Human 클래스 변수에 power를 넣어줬고 human1 객체에 power 1을 올려주었다. 짱구는 힘6이고 철수는 힘5이다. 

댓글

Designed by JB FACTORY