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 기능은 변경 가능한 기본 인수와 관련된 일반적인 문제를 방지하는 데 매우 중요합니다.
이는 데이터 클래스의 각 인스턴스가 고유한 기본값을 갖도록 하여 코드를 더욱 예측 가능하게 만들고 공유 상태와 관련된 미묘한 버그를 방지하는 데 도움이 됩니다.
위 내용은 Python 트릭: field(default_factory=...)와 함께 데이터 클래스 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!