[python] 파이썬 클래스 본문

Python

[python] 파이썬 클래스

미니모아 2019. 5. 23. 15:56
반응형

클래스란 똑같은 무엇인가를 계속해서 만들어낼 수 있는 설계 도면 같은 것이고 객체란 클래스에 의해서 만들어진 피조물을 뜻한다. 클래스에 의해서 만들어진 객체는 객체별로 독립적인 성격을 가진다.

 

 

 * 인스턴스 

  Table 이라는 클래스가 있고 

  a = Table()로 a라는 객체를 생성했을 때 

  a를 Table의 인스턴스라고 한다. 

 

 * 메서드 

 class안에 정의된 함수를 class의 메서드라고 한다. 

 

 class Test:

      def setdata(self,first,second):

          self.first = first

          self.second = second

 

 a = Test()

 

 이때 실제 입력해줘야하는 매개변수는 2개 뿐이다. 

 객체 호출시 첫번째 매개변수에는 자동적으로 그 객체가 전달되기 때문이다. 

 

 자바 클래스와 차이를 보이는 부분이 바로 이것이다. 

 파이썬 클래스의 메서드의 첫번째 매개변수는 관례적으로 self라는 이름을 사용한다.

 

 *생성자 

 객체에 초기값을 설정해야 할 필요가 있을때 안전을 위해 사용한다. 객체가 생성될 때 자동으로 호출되는 메서드 이다. 

 __init__으로 메서드 명을 사용한다. (주의 _ 가 아니라 __임 2개임 2개)

 

 class Test:

    def __init__(self,first,second):

         self.first = first

         self.second = second

 

 

*상속

 어떤 클래스를 만들 때 다른 클래스의 기능을 물려 받을 수 있게 만드는 것이다. 

 

class Test:

    pass

 class Test2(Test):

    pass

 

 Test2는 Test를 상속 받았으므로 Test의 모든 기능을 사용할 수 있다. 

 

 

* 메서드 오버라이딩 

 부모 클래스를 상속받은 자식 클래스에 부모 클래스에 존재하는 메서드와 동일한 이름으로 메서드를 작성하면 오버라이딩 되어 새롭게 작성한 메서드가 호출된다. 

 

*클래스 변수 

 클래스 안에 가지고 있는 변수. 클래스 변수를 수정하면 객체들의 변수도 같이 수정된다. 

 class Test : 

     name= "김"

 

  a = Test()

  b = Test()

 

  print(a.name)

   >> "김"

  print(b.name)

   >> "김"

 

  Test.name= "박"

  print(a.name)

   >> "박"

  print(b.name)

   >> "박"

 

 

 

 

 

 

참조 :https://wikidocs.net/28

 

 

 

반응형
Comments