首页 > 解决方案 > 帮助pycharm识别pybind11定义的静态方法

问题描述

我正在创建一个 python 3 扩展,其中包含一个使用pybind11::class_<T>::def_static. 但是,我注意到当 pycharm 分析这个扩展时,它认为该方法应该接受一个self参数,因此它给出了错误的自动完成提示。

方法定义如下所示:

c.def_static("some_method", [](int i){ return 0; }, pybind11::arg("i"))

这是 pycharm 推断的存根:

class some_class:
    def some_method(self, i): # real signature unknown; restored from __doc__
        """
        some_method(i: int) -> int
        """

请注意,@staticmethod缺少,并且有一个self. 如何确保我的扩展包含 pycharm 正确推断静态方法签名所需的信息?

标签: pycharmpybind11

解决方案


推荐阅读