🧐 🤔 그거 어떻게 쓰더라 🙄 😙

파이썬 클래스

2022. 7. 31. Evergood Kim이가 씀
class ClassName:                  # 클래스 정의
    species = 'human'               # 클래스 변수

    def __init__(self, name, age):  # 생성자
        self.name = name            # 인스턴스 변수
        self.age = age
        self.__money = 0            # 비공개 속성

    def eat_tteokkuk(self):         # 메서드
        self.age += 1


instance = ClassName( 'Sunny', 500 )  # 인스턴스 생성
instance.eat_tteokkuk()               # 메서드 호출
print( instance.age )                 # 어트리뷰트 참조

클래스

클래스는 속성과 메서드들의 묶음이자 인스턴스(개체)의 데이터형이다. 모든 게 객체인 파이썬에서 클래스 정보 역시 클래스라는 클래스의 객체

isinstance( 인스턴스, 클래스 )
해당 클래스의 인스턴스인지 검사한다. True, False를 반환

인스턴스(객체) 생성

해당 클래스를 자료형으로 하는 객체를 생성한다.

인스턴스이름 = 클래스이름( 생성자에 넣을 인자 )

어트리뷰트

객체 안에 들은 변수나 메서드

객체.어트리뷰트로 해당 어트리뷰트를 써먹는다.

클래스 정의

class 클래스이름: 
    클래스바디
@데코레이터 class 클래스이름 ( 상속인자목록 ) : 바디

변수

클래스 변수

해당 클래스의 모든 인스턴스에서 공유하는 변수 (자바의 static변수 같음)

class 클래스이름:
    속성 = 
    

인스턴스 변수

각 인스턴스마다 따로 가지는 변수

class 클래스이름:
    …
    def 메서드(self, …):
        self.속성 = 
    

메서드

메서드는 클래스 안에 정의된 함수이다.

class 클래스이름:
    …
    def 메서드이름(self, 매개변수 0개이상):
        메서드바디
    

매개변수 중에 self가 있어야 메서드 바디에서 self를 통해 인스턴스 자신이 가리켜진다. 없으면 인스턴스 자신에게 접근이 안 되므로 그 메서드는 곧 정적메서드와 같게 된다. 매개변수 목록 중 self는 맨 처음 나와야 한다.

생성자

__init__이라는 이름의 메서드로 생성자를 구현한다. 주로 여기서 인스턴스 변수들을 초기화한다.

이 메서드를 정의하지 않아도 매개변수 없는 기본 생성자가 있다.

비공개 속성

어트리뷰트 이름을 “__”으로 시작한다. 그 어트리뷰트는 안 보이게 된다.

뒤쪽에는 __가 있으면 안 된다. 양쪽 모두 __로 둘러싸인 이름은 파이썬 시스템에서만 쓰기로 되어있기 때문이다.

728x90