我很好奇以下内容是否有效,其中只有一些变量是在类型声明的类中进行类型声明的。也就是说,在这种情况下,类之前的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'
错误。
(略)更长的答案:
您始终可以将其声明为(python)对象:
cdef class CythonClass(object):
cdef int var1, var2
cdef object defaultdict # declared as python object
这不是很有效,但是可以。