이것이 절대적으로 철학적 인 질문이라면 유감이지만, 모범 사례가 무엇인지 궁금해서 Google에서 좋은 대답을 찾지 못하는 것 같습니다.
파이썬에서는 보통 빈 클래스를 수퍼 캐치 데이터 구조 컨테이너 (JSON 파일과 같은 종류)로 사용하고 다음과 같이 속성을 추가합니다.
class DataObj:
"Catch-all data object"
def __init__(self):
pass
def processData(inputs):
data = DataObj()
data.a = 1
data.b = "sym"
data.c = [2,5,2,1]
이것은 컨테이너 객체가 본질적으로 무엇이든 저장할 수 있기 때문에 엄청난 유연성을 제공합니다. 따라서 새로운 요구 사항이 발생하면 DataObj 객체에 다른 속성으로 추가하면됩니다 (코드에서 전달).
그러나 최근에는 (FP 프로그래머가) 이것이 코드를 읽기가 매우 어려워 지므로 이것이 끔찍한 관행이라는 사실에 깊은 인상을 받았습니다. DataObj가 실제로 가지고있는 속성을 파악하기 위해 모든 코드를 거쳐야합니다.
질문 : 유연성을 유지하면서 유지 관리 성을 향상시키기 위해 어떻게 이것을 다시 작성할 수 있습니까?
내가 채택 할 수있는 함수형 프로그래밍 아이디어가 있습니까?
모범 사례를 찾고 있습니다.
참고 : 하나의 아이디어는 예를 들어 발생할 것으로 예상되는 모든 속성으로 클래스를 사전 초기화하는 것입니다.
class DataObj:
"Catch-all data object"
def __init__(self):
data.a = 0
data.b = ""
data.c = []
def processData(inputs):
data = DataObj()
data.a = 1
data.b = "sym"
data.c = [2,5,2,1]
이것이 실제로 좋은 생각입니까? 내 속성이 무엇인지 잘 모르겠다면 어떻게해야합니까?