python - هل يمكن لصنف كديف تخزين متغير غير(نوع) تم الإعلان عنه؟
attributes cython (1)
اجابة قصيرة:
لا، تحتاج إلى إعلان ذلك. وإلا، ستحصل على 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
هذا لن يكون فعالا جدا، ولكنه يعمل.
أنا غريبة إذا كان ما يلي صحيحا، حيث فقط بعض المتغيرات هي نوع أعلن في فئة أعلن نوع. وهذا يعني، هل cdef
قبل أن يكون الصف غير صالح في هذه الحالة؟
cdef class CythonClass:
cdef int var1, var2
def __init__(self, a, b):
self.var1 = a
self.var2 = b
self.defaultdict = DefaultDict(DefaultDict([]))