Python: DataClass 소개

소개



이 글은 파이썬 3.7+에서 도입된 데이터 클래스의 개념을 설명할 것입니다. 내 가정은 당신이 특정 객체 지향 프로그래밍에서 파이썬에 정통하다고 가정합니다. 그러나 개념을 간략하게 설명하고 더 많은 리소스로 안내해 드리겠습니다. see PEP 557

수업 요약:


  • 수업이란 무엇입니까?

  • 단순히 개체 생성자 또는 개체 생성의 청사진으로 정의할 수 있습니다.

    예시




    class Student:
      def __init__(self, name, age):
        self.name = name
        self.age = age
    


    1행: 개체 이름(Student)이 있는 클래스 정의.
    2행에서 4행: 객체 생성자. 클래스가 새 객체를 생성하는 데 사용될 때마다 init() 함수가 자동으로 호출됩니다.

    참고:



    self 매개변수는 클래스의 현재 인스턴스에 대한 참조이며 클래스에 속하는 변수에 액세스하는 데 사용됩니다. 이름을 self 로 지정할 필요는 없으며 원하는 대로 호출할 수 있지만 첫 번째 매개변수여야 합니다. 클래스에 있는 모든 함수의 매개변수입니다.

    데이터 클래스



    새로운 dataclass() 데코레이터는 데이터 클래스를 선언하는 방법을 제공합니다. 데이터 클래스는 클래스 변수 주석을 사용하여 속성을 설명합니다. 생성자와 repr(), eq() 및 hash()와 같은 기타 매직 메서드가 생성됩니다.
    자동으로.

    예 1:

    위에서 생성되었지만 이제 수정된 Student 개체의 예를 고려하십시오.

    from dataclasses import dataclass
    @dataclass
    class Student:
      name: str
      age: int
      def greet_student(self) -> str:
        return f'Hello {self.name}, you are {self.age} years old'
    p = Student('Tito',16)
    print(p.greet_student())
    



    Output:
    Hello Tito, you are 16 years old
    


    예 2:

    from dataclasses import dataclass
    
    @dataclass
    class InventoryItem:
        """Class for keeping track of an item in inventory."""
        name: str
        unit_price: float
        quantity_on_hand: int = 0
    
        def total_cost(self) -> float:
            return self.unit_price * self.quantity_on_hand
    


    위의 예에서 init() 생성자가 생략되었음을 알 수 있으며 데이터 클래스가 자동으로 추가합니다. 데이터 클래스는 개체를 쉽게 만들고 개체에 더 많은 구성을 추가하는 데 도움이 됩니다. 이제 Python의 데이터 클래스에 대한 기본적인 이해가 생겼습니다. 다음 에피소드에서는 데이터 클래스 개념에 대해 자세히 알아볼 것입니다.
    더 많은 콘텐츠를 보려면 팔로우하세요.

    Buy Me a coffee

    좋은 웹페이지 즐겨찾기