python - 之前返回“True”的hasattr(),代码转换成cython后返回“False”
问题描述
我在 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"))
现在它打印“假”
有人知道发生了什么吗?
解决方案
推荐阅读
- c# - 为什么我的 C# 本机消息传递主机在读取 Firefox 浏览器扩展发送的消息时挂起?
- python - re.match 在 python3 中没有像我期望的那样工作
- c# - Kafka Producer 错误:'未指定值序列化程序,并且没有为类型定义默认序列化程序......'
- spring-boot - Skaffold dev 仅适用于 minikube。其他本地集群失败
- r - 需要一些帮助,在 R 中修复这个函数
- arrays - 如何将数组限制为使用 rxjs“from”运算符创建的流?
- sql - 如何为每个唯一 ID 选择一行
- javascript - 如何在单击克隆元素时删除
- javascript - 如何将对象导入另一个文件?
- java - json post body 帮助,使用改造和 jsonObject