Python 3

class, __init__, self

Coding_SJ 2020. 3. 25. 00:30

다음의 코드로 설명해 드리겠습니다

class A(object):

       def __init__(self): 

          self.x = 'Hello'

def method_a(self, foo):

       print self.x + ' ' + foo

 

 

a=A()

1. self

self는 객체의 인스턴스 그 자체를 의미합니다. 대부분 객체지향 언어는 이걸 메소드에 안 보이게 전달하지만 파이썬에서 클래스의 메소드를 정의할 때는 self를 꼭 명시해야하고 그 메소드를 불러올 때 self는 자동으로 전달됩니다.

2. __init__

__init__은 파이썬에서 쓰이는 생성자입니다.

위의 코드에서 A()는 생성자 __init__에 어떤 파라미터도 넘기지 않고, 그 결과로 A타입의 객체를 생성해 이를 반환받습니다.

A(24, 'Hello'))와 같이 쓰면 파라미터 2개를 받는 생성자가 필요한데 현재 __init__은 그 어떤 파라미터도 받지 않으니 exception이 발생합니다.

 

 

 

 

 

 

 

파이썬 메서드의 첫 번째 매개변수 이름은 관례적으로 self를 사용한다. 객체를 호출할 때 호출한 객체 자신이 전달되기 때문에 self를 사용한 것이다. 물론 self말고 다른 이름을 사용해도 상관없다.

 

 

https://studymake.tistory.com/235

 

파이썬의 클래스(class) 정의 및 객체 생성

파이썬은 클래스를 지원하므로 객체 지향적인 프로그래밍을 할 수 있다. 사실 지금까지 다뤄온 기본 자료형도 다 클래스이다. 클래스는 새로운 자료형을 정의하는 것이고 객체(object)는 클래스의 인스턴스(instan..

studymake.tistory.com

파이썬은 클래스를 지원하므로 객체 지향적인 프로그래밍을 할 수 있다. 사실 지금까지 다뤄온 기본 자료형도 다 클래스이다. 클래스는 새로운 자료형을 정의하는 것이고 객체(object)는 클래스의 인스턴스(instance, 클래스가 구체화된 것)를 의미한다.

 

클래스 : 새로운 자료형을 정의하는 것

객체(object) : 클래스의 인스턴스(instance, 클래스가 구체화된 것)

 

class 식별자:
                    클래스 본체

 

보통 클래스의 식별자는 대문자로 시작한다. 예를 들어 Person, Robot, Car, Point 등이다. 클래스 본체는 이 클래스에 속하는 변수와 함수를 정의하게 된다. 특별히 클래스에 속한 변수들을 필드(field), 클래스에 속한 함수들을 일반 함수들과 구분하기 위해서 메소드(method)라고 부르며 이 둘을 통칭하여 속성(attribute)라고 한다.

 

요약

 

클래스 속 변수 : 필드

클래스 속 함수 : 메쏘드

속성 : 필드와 메쏘드

 

 

  • 필드 (field) : 클래스에 내장된 변수

  • 메쏘드 (method) : 클래스에 속하는 함수

  • 속성 (attribute) : 필드와 메쏘드를 통칭하여 속성이라 한다.