주로 읽기 쉽기 때문에.
C++ 및 Java 용 코드 생성기는 생성자 코드와 생성되는 코드를 동시에 따라야하기 때문에 이해하기 어렵고 편집하기가 어렵습니다.
파이썬 코드 생성기는 같은 방식으로 수행되었을 수 있습니다. 그러나 파이썬은 동적 언어이기 때문에 대신 메타 클래스를 사용할 수 있습니다. 본질적으로 이는 대부분의 코드가 런타임에 생성되도록합니다. 메타 클래스는 코드 생성기보다 읽고 편집하기가 훨씬 쉽습니다. 그 이유는이 코드가 모두 똑바로 나온 Python이기 때문입니다.
이제 자바가 비슷한 일을 할 수 있다고 주장 할 수도 있습니다. 매우 간단한 클래스를 생성 한 다음 리플렉션을 사용하여 필드를 읽고 쓰십시오. 그 문제는 Java가 컴파일 된 언어라는 것입니다. 컴파일 된 코드는 리플렉션 기반 코드보다 훨씬 잘 수행됩니다. 그러나 Python은 컴파일되지 않으므로 반향 접근법을 사용하는 데 별다른 불이익이 없습니다. 사실, 파이썬은 동적으로 설계 되었기 때문에 다른 언어에서는 불가능한 많은 트릭을 할 수 있습니다 (그러나 다시는 느립니다).
protobuf의 비단뱀의 깔끔한 속임수를 쓸 수 있습니까? – xosp7tom
죄송합니다. 코드 작업을한지 오래되었습니다. 내가 만든 최적화 중 일부가 마음에 들었지만 더 이상 기억할 수는 없습니다. (파이썬 라이브러리의 대부분은 저에게 쓰여지지 않았지만 그것을 최적화하는 작업을했습니다 ...) –