티스토리 뷰

study/Python

Class

xoxowo 2022. 6. 27. 23:18

 

파이썬은 객체 지향 프로그래밍 언어(Object Oriented Programming Language)이며, 객체 지향 프로그래밍 언어는 객체를 우선으로 생각해서 프로그래밍한다는 의미다.

즉, 클래스를 기반으로 객체를 만들고 이 객체를 우선으로 생각하여 프로그래밍하는 것을 지향한다는 것

 

class

클래스 이름은 '카멜 케이스' 명명법에 따라, 첫 글자를 대문자로 작성하는데, 내부 매서드와 변수와 구분을 위해 첫 글자를 대문자로 작성하는 것이 규칙이라고 한다.

- class 선언 내  _ _init_ _  함수를 만들면 객체를 생성할 때 처리할 내용을 작성할 수 있다.

(언더 바가 잘 보이도록 띄어쓰기를 했으나 실제로 코드 작성 시 붙여서 작성한다)

- 클래스 변수를 정의 해 두면 모든 인스턴스들에서 동일한 값을 사용할 수 있다.

class 클래스 이름 :
	# 클래스 변수: 클래스 변수를 정의 해 두면 모든 인스턴스들에서 동일한 값을 사용할 수 있다
    클래스 변수 = 100
    # 언더바가 잘보이도록 띄어쓰기를 했으나 실제로 코드 작성 시 붙여서 __init__ 작성한다
	def _ _init_ _ (self, 추가 매개 변수, ...) :
    	pass

* self 는 키워드가 아닌 단순한 식별자이므로, 변수 이름으로 활용해도 상관없으나 많은 개발자가 self라는 이름을 사용을 지향한다.

 

인스턴스 (객체)

클래스 기반으로 만들어진 객체를 인스턴스라고 부른다.

비유하자면 클래스라는 틀을 이용해서 만들어낸 내용물과 같다. (자주 사용되는 비유: 클래스 = 붕어빵 틀 , 인스턴스 = 붕어빵)

클래스를 정의 한 후 함수를 선언하듯 인스턴스(객체)를 선언(?)하여 사용한다. 

# (변수 이름) = 클래스 이름()
인스턴스 이름 = 클래스 이름() # 생성자 함수

 

- 만들어본 아주 간단한 class 예제

class Student :

    def _ _init_ _(self, name, classroom):
        self.name = name
        self.classroom = classroom

    def id(self):
        print(f'{self.name}은 {self.classroom}반 입니다.')

# 인스턴스 객체를 생성할 때 __init__() 함수가 있고, 입력 파라미터들이 지정되어 있다면, 
# 클래스명(입력파라미터들)과 같이 파라미터를 괄호 안에 전달한다
na = Student('yujeong', 3)

# 인스턴스를 생성하고 인스턴스 메서드 호출이 가능하다
na.id()

# 실행결과
yujeong은 3반입니다.

내용 전문 출처 - 혼자 공부하는 파이썬

'study > Python' 카테고리의 다른 글

기본 자료형  (0) 2022.06.24
Function parameter  (0) 2022.06.23
List 와 Array 의 차이  (0) 2022.06.18
Tuple  (0) 2022.06.16
List, Dictionary 관련 기본 함수 및 리스트 내포  (0) 2022.06.16
댓글