如何为在C中实现的对象类型设定__file__和__module__?

2024-04-19 16:45:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我在C代码中定义了一些自定义类型。你知道吗

在基于这些代码开发Python代码时,我有时会遇到一个错误,当Python自己的getfile()函数(在inspect.py内部)引发自己的异常时,这种错误就更加复杂了:

TypeError('{!r} is a built-in class'.format(object))

因为我希望看到底层的原始错误而不是上面的错误,所以我想知道是否可以将__module____file__属性添加到我自己的类型中。你会怎么做?你知道吗

documentation似乎暗示,属性必须是对象的一部分——在我这样的情况下,当类的所有实例的值都完全相同时,这显然是一种浪费——我如何使它们成为静态的?你知道吗

如果我尝试实现type-specific attribute management,我会突然失去对类型的方法的访问权限(因为现在它们被视为属性)。你知道吗

这些属性是否可能与方法共存?我该怎么做?我的主要目标是Python-3.x。。。你知道吗


Tags: 方法函数代码inpy类型属性定义
1条回答
网友
1楼 · 发布于 2024-04-19 16:45:34

在C级类型定义的tp_name槽中,编写完全限定名:

"your_module.YourClass"

类型对象的__module__将基于tp_name设置。模块的__file__属性应该已经被自动处理了。你知道吗

相关问题 更多 >