问题描述
我定义了垃圾邮件类型。请关注Defining New Types。
这样。
PyObject *m;
m = Py_InitModule(MODULE_NAME,Spam_methods);
int rst = PyModule_Addobject(m,"Foo",(PyObject *)&FooPyType);
if (rst == -1) {
throw std::runtime_error("PyModule_Addobject(Foo) Failed");
}
Foo PyTypeObject是这样的:
PyTypeObject FooPyType = {
PyVarObject_HEAD_INIT(&PyType_Type,0)
"spam.Foo",sizeof(Foo),reinterpret_cast<reprfunc>(FooType_str),Py_TPFLAGS_DEFAULT,"The spam Foo",FooType_methods,nullptr,FooType_getSet
};
from spam import Foo
setattr(Foo,"bar",lambda self: "Hello from bar")
但是它抛出错误:can't set attributes of built-in/extension type 'spam.Foo'
。
我该怎么做。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)