我在 python 中创建了一个简单的类并检查它是否具有某个属性。在 hasattr() 返回 True 之后,我尝试在 Cython 中重写它,然后 hasattr() 返回 False。
在 python 中看这个例子:
class Foo_p:
def __init__(self, val):
self.val = val
def printVal(self):
print(self.val)
a=Foo_p(5)
print(hasattr(a,"val"))
这个例子打印“真”。
现在我尝试在 Cython 中重写它:
%load_ext Cython
%%cython
cdef class Foo_c:
cdef int val
def __init__(self, int val):
self.val = val
def printVal(self):
print(self.val)
b=Foo_c(5)
print(hasattr(b,"val"))
现在它打印“假”
有人知道发生了什么吗?