Scribbling

<Python> Class 파헤치기 본문

Computer Science/Python

<Python> Class 파헤치기

focalpoint 2021. 10. 28. 20:36

 

Python Class 관련하여 잘 몰랐던 부분을 정리해둔다.

1. 비공개 속성 및 메서드

속성이나 메서드에 "__"를 붙이면 클래스 외부에서 접근할 수 없다.

class person:
    def __init__(self, name, nickname):
        self.name = name
        self.__nickname = nickname
        
    def __tease(self):
        print(self.__nickname)

 

2. 클래스 속성

클래스 속성은 아래처럼 선언가능하며, 클래스명으로 접근하는 것이 가독성에 좋다.

class Person:
    all_names = []

    def __init__(self, name):
        Person.all_names.append(name)
        self.name = name

 

3. 정적 메서드 (Static Method)

"@staticmethod" 데코레이터를 사용하여 정적 메서드를 선언합니다.

개별 인스턴스에 영향을 주지 않는 메서드인 경우 정적 메서드로 선언할 수 있습니다.

class Calc:
    @staticmethod
    def subtract(a, b):
        return a - b

print(Calc.subtract(3, 4))

 

4. 클래스 메서드 (Class Method)

클래스 메서드는 정적 메서드와 마찬가지로 인스턴스 없이 호출이 가능합니다.

그러나 클래스 메서드는 일반적으로 클래스 속성이나 클래스 메서드에 접근하기 위한 용도로 사용합니다.

class Food:
    foods = []
    
    @classmethod
    def add_food(cls, food):
        cls.foods.append(food)

 

5. 파생 클래스에서 기반 클래스 메서드 사용하기

class Person:
    def __init__(self):
        self.hello = '안녕하세요.'
 
class Student(Person):
    def __init__(self):
        super().__init__()               
        self.bye = '안녕히가세요'

 

'Computer Science > Python' 카테고리의 다른 글

<Python> 정규표현식  (0) 2021.11.09
<Python> Decorator  (0) 2021.11.09
<Python> Iterator, Generator  (0) 2021.11.09
<Python> 클로저  (0) 2021.10.28
기본 자료구조 / 알고리즘 정리  (0) 2021.08.16