파이썬에서 kotlin으로 변환하여 해당 패키지를 사용하는 시스템을 마이그레이션 할 수있는 패키지가 있습니다.kotlin, 기본 클래스 생성자에 매개 변수를 전달하는 것을 단순화하는 방법은 무엇입니까?
패키지 내에는 모든 변형 또는 공통 기본 클래스의 '변종'인 일련의 클래스가 있습니다.
코드의 대부분은 상당한 수의 선택적 매개 변수가있는 기본 클래스에 있습니다. 그래서 생각해
개방 클래스 BaseTree을 (발 높이 : 지능 = 10, 발 뿌리를 : 부울 = TRUE, // ...... 더 많은!
class FruitTree(val fruitSize, height:Int=10, roots:Boolean=true,
// now need all possible parameters for any possible instance
):BaseTree(height=height, roots=roots //... yet another variation of same list
을 코드는 실제로 나무 아니다 이 개념을 전달하는 간단한 방법이라고 생각했습니다. 기본 클래스에는 약 20 개의 매개 변수가 있고 하위 클래스에는 약 10 개가 있으며 각 하위 클래스는 기본 클래스의 매개 변수 목록과 동일한 두 가지 변형을 효과적으로 반복해야합니다. 매개 변수 목록이 변경되는 경우 실제 악몽이 발생합니다!
Java 배경의 사람들은 "20 매개 변수가 너무 많습니다"라고 말할 수도 있습니다. 이것은 옵션 매개 변수이며,이 디자인 측면에 영향을주는 언어 기능입니다. 20 개의 필수 매개 변수가 미친 것이지만 10 개 또는 20 개의 선택적 매개 변수가 드문 경우가 아니므로 sqlalchemy Table을 확인하십시오.
파이썬에서, 당신은 당신이 할 수있는 기본 클래스 생성자를 호출합니다 :
이def __init__(self, special, *args, **kwargs):
super().__init(*args, **kwargs) # pass all parameters except special to base constructor
사람이 기술을 알고 있나요, 다른 방법을 사용하여이 매개 변수 목록을 반복하지 않도록하기 위해 (아마도 인터페이스 또는 뭔가를 사용하고 계십니까?) 각 하위 클래스에 대해 반복해서?
내가 처음 sqlalchemy에 대해 생각할 수있는 인기있는 파이썬 패키지와 내가 본 첫 번째 주요 클래스 인 Table 클래스에는 말 그대로 20 개의 선택적 매개 변수가있다 (이것은 필요한 매개 변수 외에 표의 필드). 이것은 그들이 자신의 수업 설계에 문제가 있다는 것을 의미합니까? 아마도 모든 파이썬 널리 사용되는 패키지는 디자인에 문제가 있습니까? 나는 이것이 언어에서 선택적 매개 변수를 갖는 결과 인 차이라고 생각합니다. 선택적 매개 변수가없는 Java에서 예 20 매개 변수는 선택 사항 일 수 없으므로 재앙입니다. – innov8