매개 변수 x
이 전달 된 함수를 만들고 새로운 클래스 C
을 반환합니다. C
은 고정 기본 클래스 A
의 서브 클래스 여야하며 하나만 추가됩니다. 특정 클래스 속성이 추가되고 x
과 동일하게 설정됩니다. 즉python 3 : class "template"(매개 변수화 된 클래스를 반환하는 함수)
:
class C(A):
C.p = x # x is the parameter passed to the factory function
는 할이 쉽게 사용할 수 있나요? 내가 알아야 할 문제가 있습니까?
감사합니다. 내 질문에서 'factory'에 대한 참조를 제거했습니다. 이 함수를 사용하면 이름 충돌에 문제가 있거나 함수가 반환 할 때 'C'를 잊어 버릴 수 있습니까? – max
위의 설명에서 말했듯이, 이름이 기록 된 두 개의 * 장소가 있습니다. Glenn의 예에서 이름 "C"는 클래스의 내부 이름 (클래스의 영구 속성)과 로컬 변수 이름 "C"입니다. 함수가 반환 될 때까지 지역 변수 "C"는 잊어 버리지 만 클래스는 내부 이름 "C"를 유지합니다. 그러나 위에서 말했듯이 내부 클래스 이름에 대해서는 이름 충돌이 없으므로 문제가되지 않습니다. – mgiuca
클래스 자체는 단순히 객체입니다. 그것은 'C = 1; C '를 반환하십시오. ("C"라는 이름은 객체에'C .__ name__'으로 저장되어 있지만 디버깅과 코스메틱 목적으로 만 사용됩니다.) –