기타/기타 잡다한 것들

[파이썬기초] 클래스(Class)

제주도소년 2018. 10. 27. 00:13

[파이썬기초] 클래스(Class)

클래스는 개발자가 독자적인 자료형을 만드는 것과 같다.
클래스에는 클래스만의 전용 함수(Method)와 속성(Attribute)를 정의할 수도 있다.
거의 자바나 다른 언어랑 비교했을때 형태는 매우 비슷하다.

파이썬에서의 클래스 형태는 아래와 같다.

1
2
3
4
5
6
7
class class_name:
    def __init__(self, name):
        self.name = name
        print("__init__")
 
    def sayHello(self):
        print(self.name+"sayHello")
cs


1번째 줄을 보면 class 라는 키워드로 클래스를 정의할 수 있고 class_name 에는 클래스 명을 적는다. 그리고 뒤에 : (콜론) 이 붙는데 자바나 C++이나 다른언어에 비해 좀 생소한 편이다. 파이썬에서는 클래스나 함수, for문 등 뒤에 콜론을 붙여야 한다. 그리고 그 콜론을 기준으로 하나의 영역이라고 보면된다. 자세히 보면 2행부터는 들여쓰기가 되있고 3번과 4번행을 보면 들여쓰기가되어있는것을 확인 할 수 있는데, 이처럼 파이썬에서는 들여쓰기로 구분한다.


* 들여쓰기라는 것은 파이썬에서는 Tab 문자 혹은 공백 4글자를 의미한다. 하지만 파이썬에서는 공백문자를 사용하는 쪽을 권장한다.


그리고 def는 함수를 정의하는 키워드인데, 클래스에서 __init__ 이라는 특별한 함수가 있다. 클래스를 초기화 할 때 사용한다. 즉 클래스의 인스턴스가 만들어질 때 한번 호출하게 된다. 한마디로 생성자(Constructor)라고 한다.


또 파이썬에서는 함수의 첫 번째 인수로 자기자신을 나타내는 self를 명시적으로 쓰는 것이 특징이다. 자바에서는 this 라고 보면 되는데 명시적으로 메서드에 인수로 넣지는 않는다.


파이썬 클래스 사용은 아래와 같다.

1
2
= class_name("SEO")
m.sayHello()
cs


위의 코드에서는 class_name이라는 이름으로 클래스를 정의했다. 그리고 class_name 이라는 클래스에서 m 이라는 인스턴스를 생성한다.


객체를 생성 후 class_name 클래스 안에있는 함수를 .(도트)를 통해서 접근 할 수 있다.