[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