python - cython tutorial



cdef 클래스가(type-) 선언되지 않은 변수를 저장할 수 있습니까? (1)

변수의 일부만 형식 선언 클래스에 선언 된 다음 유효하면 궁금합니다. 즉,이 경우 클래스가 무효가되기 전에 cdef 를 사용할 수 있습니까?

cdef class CythonClass:

    cdef int var1, var2

    def __init__(self, a, b):
        self.var1 = a
        self.var2 = b
        self.defaultdict = DefaultDict(DefaultDict([]))

짧은 답변:

아니요, 신고해야합니다. 그렇지 않으면 AttributeError: 'xxx.CythonClass' object has no attribute 'defaultdict' 오류 AttributeError: 'xxx.CythonClass' object has no attribute 'defaultdict' .

(약간) 더 긴 대답 :

당신은 항상 그것을 (파이썬) 객체로 선언 할 수 있습니다 :

cdef class CythonClass(object):

    cdef int var1, var2
    cdef object defaultdict  # declared as python object

이것은 매우 효율적이지는 않지만 작동합니다.





cython