본문 바로가기
Language/Python

[2023-07-06] 파이썬 강의 내용 정리

by Wikinist 2023. 7. 6.

1. Class

클래스는 중요한 몇가지 속성을 가집니다. 그 속성으로는 상속, 다형성, 가시성 등이 존재합니다. 가시성 표현은 Private, Public, Proteted 등이 있으며 클래스의 attribute나 method를 어느 수준까지 공개할 것인지에 대해 나타내지만 파이썬은 명시적으로 그런 가시성을 지원하는 키워드는 없습니다. 따라서 사용자는 가시성을 설정하기 위해 _나 __를 사용하여 사용자에게 보여지는 부분을 제한합니다.
더블 언더스코어를 사용했을 때 해당 변수의 getter, setter는 property decorator를 이용하여 표현할 수 있습니다. getter는 @property를 함수위에 작성하며, setter는 함수 위에 @{getter method name}.setter 로 작성합니다.
클래스의 특징 중 다형성은 상속받은 클래스들이 같은 함수를 호출하더라도 서로 다른 액션을 취하도록 하게 해주는 것을 말합니다.

아래는 @property 데코레이터를 이용하여 getter와 setter를 정의하는 간단한 샘플 코드입니다.

class Circle:
    def __init__(self, radius):
        self._radius = radius

    @property
    def radius(self):
        return self._radius

    @radius.setter
    def radius(self, value):
        if value <= 0:
            raise ValueError("Radius must be a positive number.")
        self._radius = value

    @property
    def area(self):
        return 3.14 * self._radius ** 2

위의 코드에서 Circle 클래스는 원을 나타내며, 반지름(radius)과 면적(area) 속성을 가지고 있습니다. radius 속성에는 @property 데코레이터와 radius 메서드가 정의되어 있습니다. radius 메서드는 반지름 값을 반환하는 getter 역할을 합니다.
radius 속성에 값을 설정하기 위해 @radius.setter 데코레이터와 radius 메서드를 정의합니다. 이 setter 메서드를 통해 반지름이 음수나 0인 경우 예외를 발생시킵니다.
area 속성에는 @property 데코레이터와 area 메서드가 정의되어 있습니다. 이 속성은 getter 메서드로, 원의 면적을 계산하여 반환합니다.

2. 모듈과 패키지

파이썬에서 모듈이란 .py 파일, 패키지란 디렉토리라고도 할 수 있습니다. 모듈을 이용하면 다른 파일의 클래스, 함수, 변수 등을 이용 할 수 있습니다. 파이썬 3.6 미만의 버전에서는 패키지 하위에 __init__.py 파일이 존재하지 않으면 패키지로 인식이 안되므로 주의가 필요합니다.
파이썬에서 모듈과 패키지를 불러들이기 위해서 사용되는 키워드는 from과 import가 있습니다. from은 패키지와 모듈을, import는 모듈 및 클래스, 함수 등을 지정하게 됩니다.

3. Exception

Exception은 파이썬에서 발생할 수 있는 에러들을 처리하기 위한 클래스입니다.
try: except: 구문으로 작성할 수 있으며 except 뒤에 ZeroDivisionError as e와 같이 작성하여 해당 에러에 대한 디테일을 파악할 수 있습니다.

해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.

 

 

 

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

클래스 변수 선언 시 _와 __의 차이  (0) 2023.07.19
DTO  (0) 2023.07.19
Code formatter, Black  (0) 2023.07.04
Python에서 *  (0) 2023.07.03
Positional / keyword argument  (0) 2023.07.03