Python의 데이터 클래스 모듈은 데이터 저장에 사용되는 클래스 생성을 단순화합니다.
대부분의 사람들이 기본 사용법을 알고 있지만, 변경 가능한 유형의 기본값을 처리하는 데 매우 유용할 수 있는 잘 알려지지 않은 기능 필드(default_factory=...)가 있습니다.
데이터 클래스를 정의할 때 목록이나 사전과 같은 변경 가능한 기본값을 사용할 수 있습니다.
변경 가능한 기본값을 직접 사용하면 인스턴스 간에 기본 인수가 공유되는 방식으로 인해 예기치 않은 동작이 발생할 수 있습니다.
default_factory 함수는 변경 가능한 기본값을 처리하는 깔끔한 방법을 제공합니다.
다음은 간단한 예입니다.
from dataclasses import dataclass, field from typing import List @dataclass class Student: name: str grades: List[int] = field(default_factory=list) # Use default_factory for mutable default # Create new Student instances student1 = Student(name="Alice") student2 = Student(name="Bob", grades=[90, 85]) # Modify student1's grades student1.grades.append(95) print(student1) # Output: Student(name='Alice', grades=[95]) print(student2) # Output: Student(name='Bob', grades=[90, 85]) # Output: # Student(name='Alice', grades=[95]) # Student(name='Bob', grades=[90, 85])
이 예에서 성적은 각각의 새 학생 인스턴스에 대해 빈 목록으로 초기화됩니다.
field(default_factory=list)를 사용하면 각 인스턴스가 고유한 별도 목록을 얻게 되어 공유 변경 가능한 기본값의 함정을 피할 수 있습니다.
default_factory 기능은 변경 가능한 기본 인수와 관련된 일반적인 문제를 방지하는 데 매우 중요합니다.
데이터 클래스의 각 인스턴스가 고유한 기본값을 갖도록 하여 코드를 더욱 예측 가능하게 만들고 공유 상태와 관련된 미묘한 버그를 방지하는 데 도움이 됩니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3