클래스 상수 만들기 누가 유형이있는 클래스인지

브렌트

특수 값 "EMPTY"및 "UNIVERSE"가있는 Python 클래스가 있습니다.

class RealSet:
    """Continuous open, half-open, and closed regions and discreet values of the Reals"""

    # implementation placeholder
    def __init__(self, intervals, *, canonicalize):
        pass

# Outside the class

RealSet.EMPTY = RealSet(tuple(), canonicalize=False)  # type: ignore
RealSet.UNIVERSE = RealSet(((None, None),), canonicalize=False)  # type: ignore

그러나 linting, 코드 완성 등은 클래스의 정적 속성으로 간주되지 않기 때문에 이것을 좋아하지 않습니다. 설정조차도 mypy 오류로보고되므로 # type: ignore.

아래는 RealSet아직 존재하지 않기 때문에 클래스 범위에서 구성 할 수 없기 때문에 작동 하지 않습니다.

class RealSet:
    """Continuous open, half-open, and closed regions and discreet values of the Reals"""
    ...
    ...

    EMPTY = RealSet(tuple(), canonicalize=False)  # error
    UNIVERSE = RealSet(((None, None),), canonicalize=False)  # error

그리고 이것은 클래스 속성이 아닌 인스턴스 속성을 정의하기 때문에 작동하지 않습니다.

class RealSet:
    """Continuous open, half-open, and closed regions and discreet values of the Reals"""
    ...
    ...

    EMPTY: "RealSet"
    UNIVERSE: "RealSet"

# Outside the class

RealSet.EMPTY = RealSet(tuple(), canonicalize=False)
RealSet.UNIVERSE = RealSet(((None, None),), canonicalize=False)

이것은 파이썬 클래스 디자인의 코너 케이스 인 것 같습니다. 속성의 유형이 해당 속성이있는 클래스 인 클래스 속성을 어떻게 만들 수 있습니까? 보너스 : 그것들을 일정하게 만드십시오.

손님

를 사용 typing.ClassVar하여 클래스 변수에 주석을 달 수 있습니다 .

class RealSet:
    def __init__(self, intervals, *, canonicalize):
        pass

    EMPTY: ClassVar['RealSet']
    UNIVERSE: ClassVar['RealSet']


RealSet.EMPTY = RealSet(tuple(), canonicalize=False)
RealSet.UNIVERSE = RealSet(((None, None),), canonicalize=False)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

수퍼 클래스의 인스턴스가 하나만있는 하위 클래스의 여러 인스턴스 만들기

분류에서Dev

각 인스턴스가 다른 유형을 갖는 클래스를 만들 수 있습니까?

분류에서Dev

클래스의 이벤트 핸들러가 해당 클래스의 변수를 상속하지 않는 이유

분류에서Dev

기존 ParameterizedType에서 다른 클래스의 매개 변수가있는 유형 만들기

분류에서Dev

인스턴스를 만들지 않고 한 클래스가 Java에서 다른 클래스를 확장하는지 확인할 수 있습니까?

분류에서Dev

매개 변수가있는 유형과 동일한 클래스의 개체 만들기

분류에서Dev

새 변수를 만들지 않고 다른 파일에있는 클래스의 인스턴스 만들기

분류에서Dev

고차 함수-요소 유형이 유효하지 않음 : 예상 된 문자열 또는 클래스 / 함수이지만 개체가 있습니다.

분류에서Dev

유형 매개 변수가 추상 기본 클래스 인 일반 유형

분류에서Dev

C ++에서 값 유형이 추상 클래스 인 맵 만들기

분류에서Dev

동적 변수가 클래스 이름이되는 복잡한 JSON 개체에서 C # 클래스 만들기

분류에서Dev

하위 클래스가 기본 클래스의 가상 함수를 재정의하는지 테스트

분류에서Dev

GUI가있는 사각형 클래스 만들기 (오류)

분류에서Dev

상수가 구조 인스턴스의 속성을 제한하지만 클래스 인스턴스가 아닌 이유는 무엇입니까?

분류에서Dev

자바에서 최상위 클래스는 정적 일 수 없지만 내부 클래스가 그 이유 일 수 있습니다.

분류에서Dev

대상 포인터가 기본 클래스 유형이 아닌 경우 dynamic_cast가 다형성 클래스에 대해 널 포인터를 생성 할 수있는 이유는 무엇입니까?

분류에서Dev

다른 유형을받을 수있는 Java에서 클래스 만들기

분류에서Dev

기본 클래스가있는 추상 클래스를 인터페이스 C #으로 변환

분류에서Dev

클래스 이름이 변수 인 PHP 개체 만들기

분류에서Dev

클래스 A 만 클래스 B를 호출 할 수 있는지 확인

분류에서Dev

Hadoop / Rubydoop + Cloud⁹ : 클래스를 찾았지만 인터페이스가 예상 됨

분류에서Dev

typescript에서 클래스의 인스턴스가 아닌 클래스를받는 인터페이스를 어떻게 만들 수 있습니까?

분류에서Dev

추가 인수가있는 자식 클래스 python 클래스 상속

분류에서Dev

상속 된 클래스를 가리키는 기본 클래스

분류에서Dev

누구든지이 코드가 인터페이스를 구현하고 클래스를 인스턴스화하는 클래스를 만드는 방법을 설명 할 수 있습니까?

분류에서Dev

이 클래스 변수가 초기화되었지만 None 인 이유는 무엇입니까?

분류에서Dev

상속 된 클래스의 인스턴스가 다른 패키지에있는 기본 클래스의 보호 된 멤버에 액세스 할 수없는 이유

분류에서Dev

추상 클래스 A 내에서 추상 클래스 A 유형의 정적 필드를 만들 수 있습니다.

분류에서Dev

내부 추상 클래스를 확장하는 익명 클래스 만들기

Related 관련 기사

  1. 1

    수퍼 클래스의 인스턴스가 하나만있는 하위 클래스의 여러 인스턴스 만들기

  2. 2

    각 인스턴스가 다른 유형을 갖는 클래스를 만들 수 있습니까?

  3. 3

    클래스의 이벤트 핸들러가 해당 클래스의 변수를 상속하지 않는 이유

  4. 4

    기존 ParameterizedType에서 다른 클래스의 매개 변수가있는 유형 만들기

  5. 5

    인스턴스를 만들지 않고 한 클래스가 Java에서 다른 클래스를 확장하는지 확인할 수 있습니까?

  6. 6

    매개 변수가있는 유형과 동일한 클래스의 개체 만들기

  7. 7

    새 변수를 만들지 않고 다른 파일에있는 클래스의 인스턴스 만들기

  8. 8

    고차 함수-요소 유형이 유효하지 않음 : 예상 된 문자열 또는 클래스 / 함수이지만 개체가 있습니다.

  9. 9

    유형 매개 변수가 추상 기본 클래스 인 일반 유형

  10. 10

    C ++에서 값 유형이 추상 클래스 인 맵 만들기

  11. 11

    동적 변수가 클래스 이름이되는 복잡한 JSON 개체에서 C # 클래스 만들기

  12. 12

    하위 클래스가 기본 클래스의 가상 함수를 재정의하는지 테스트

  13. 13

    GUI가있는 사각형 클래스 만들기 (오류)

  14. 14

    상수가 구조 인스턴스의 속성을 제한하지만 클래스 인스턴스가 아닌 이유는 무엇입니까?

  15. 15

    자바에서 최상위 클래스는 정적 일 수 없지만 내부 클래스가 그 이유 일 수 있습니다.

  16. 16

    대상 포인터가 기본 클래스 유형이 아닌 경우 dynamic_cast가 다형성 클래스에 대해 널 포인터를 생성 할 수있는 이유는 무엇입니까?

  17. 17

    다른 유형을받을 수있는 Java에서 클래스 만들기

  18. 18

    기본 클래스가있는 추상 클래스를 인터페이스 C #으로 변환

  19. 19

    클래스 이름이 변수 인 PHP 개체 만들기

  20. 20

    클래스 A 만 클래스 B를 호출 할 수 있는지 확인

  21. 21

    Hadoop / Rubydoop + Cloud⁹ : 클래스를 찾았지만 인터페이스가 예상 됨

  22. 22

    typescript에서 클래스의 인스턴스가 아닌 클래스를받는 인터페이스를 어떻게 만들 수 있습니까?

  23. 23

    추가 인수가있는 자식 클래스 python 클래스 상속

  24. 24

    상속 된 클래스를 가리키는 기본 클래스

  25. 25

    누구든지이 코드가 인터페이스를 구현하고 클래스를 인스턴스화하는 클래스를 만드는 방법을 설명 할 수 있습니까?

  26. 26

    이 클래스 변수가 초기화되었지만 None 인 이유는 무엇입니까?

  27. 27

    상속 된 클래스의 인스턴스가 다른 패키지에있는 기본 클래스의 보호 된 멤버에 액세스 할 수없는 이유

  28. 28

    추상 클래스 A 내에서 추상 클래스 A 유형의 정적 필드를 만들 수 있습니다.

  29. 29

    내부 추상 클래스를 확장하는 익명 클래스 만들기

뜨겁다태그

보관