TypeError : 메타 클래스 기지를 호출 할 때 오류 새 스타일 클래스는 클래식 기지 만 사용할 수 없습니다.

StackOverflow https://stackoverflow.com//questions/9677163

문제

다음과 같이 정의 된 클래스 모음집 :

class A():
    @staticmethod
    def call():
        print('a')

class C(type):
    def __repr__(self):
        return 'somename'

class B(A):
    __metaclass__ = C

    @staticmethod
    def call():
        print('b')

    def boundcall(self):
        print('bound')
.

실행될 때이 오류가 발생합니다.

TypeError: Error when calling the metaclass bases
    a new-style class can't have only classic bases
.

메타 클래스가 필요합니다 (i 생각)은 코드에서 B의 알려진 문자열 표현을 갖도록합니다.그 지점 옆에있는 이유는 미래의 업데이트에 크게 도움이 될 것입니다.

그래서 C가 B와 B가 필요하다고 가정하면 누군가가 여기서 무엇이 잘못되었는지와 내가 오류를 제거하기 위해 내가 무엇을하고 있는지 어떻게 변화 할 수 있는지 누군가의 하위 클래스가 될 수 있습니까?

도움이 되었습니까?

해결책

문제는 라인

입니다.
class A():
.

다음이 있어야합니다 :

class A(object):
.

그런 식으로 새로운 스타일 클래스를 만듭니다.빈 기부금은 아무런 의미가 없으며, 여전히 나는 스 누들과 모든 곳에서 그들을 보게됩니다.왜, 왜 그런가?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top