본문 바로가기
Programming/Python

07. 클래스 (Class)

by goatlab 2021. 12. 8.
728x90
반응형
SMALL

Class

 

클래스는 사용자 정의 데이터형, 개념과 속성과 기능 모델링 (변수 + 메소드; 동작을 수행하는 함수)

  • class는 객체의 구조와 행동을 정의한다.
    1. 클래스 멤버들은 퍼블릭임
    2. 동적 바인딩
    3. Self 키워드로 선언
  • 객체의 class는 초기화를 통해 제어한다.
  • class는 복잡한 문제를 다루기 쉽도록 만든다.

 

객체

 

고유 속성, class에서 정의한 행위 수행, 메모리 경제적 사용, class 타입, 객체가 메모리에 할당되어 사용될 때를 인스턴스라 함 (속성 + 행위)

 

인스턴스

 

class 객체, 컴퓨터 프로세스, 물리적인 장소 위치시킨다. `self.속성'에 할당 했던 변수들은 모두 인스턴스 속성에 해당한다.

 

class 선언

 

자료형 선언 —> 객체 생성 —> 멤버 호출

 

클래스 내장함수

 

생성자 : 초기값 지정, 내부적으로 초기화

소멸자 : 객체를 소멸하는 기능

 

오버로딩

 

하나의 class 내부에서 method 명칭은 똑같고, 인자를 다르게하는 형태를 허용한다.

연산자 : operating 키워드와 연산자를 겹쳐서 함수명으로 사용, 삼항연산 불가

 

class 생성

 

class Custom:
    def __init__(self):
        .......

 

생성자

 

f = Custom() # 생성자 (constructor)

 

초기화자

 

class Custom: # 객체의 불변성을 확립 (유효성검증 수행)

    def __init__(self, name):
        self.name = name
        
c = custom("name")
print(c.name)
--> name

 

비공개 속성

 

class Custom: # 객체의 불변성을 확립 (유효성검증 수행)

    def __init__(self, name):
        self.name = name
        
    def name(self):
        return self.__name    
        
c = custom("name")
c._name = "123"
c.name
--> AttributeError: 'Custom' object has no attribute '__name'
class Custom: # class 비공개 속성
    __private_attr = 1
    ...

Custom.__private_attr
--> AttributeError: type object 'Flight' has no attribute '__private_attr'
728x90
반응형
LIST

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

09. 모듈 (Module)  (0) 2021.12.08
08. 클래스 상속 (Class inheritance)  (0) 2021.12.08
06. 함수 (Function)  (0) 2021.12.08
05. 제어문 (If, For, While)  (0) 2021.12.08
04. 표준입출력  (0) 2021.12.08